20#include "CalypsoSam.h"
21#include "CardSecuritySetting.h"
22#include "WriteAccessLevel.h"
25#include "CardReader.h"
35using namespace calypsonet::terminal::calypso;
36using namespace calypsonet::terminal::calypso::sam;
37using namespace calypsonet::terminal::calypso::transaction;
38using namespace calypsonet::terminal::reader;
48 public CardSecuritySetting {
56 CardSecuritySetting& setSamResource(
const std::shared_ptr<CardReader> samReader,
57 const std::shared_ptr<CalypsoSam> calypsoSam)
override;
101 const uint8_t kif)
override;
109 const uint8_t kif)
override;
117 const uint8_t kvc)
override;
157 bool isMultipleSessionEnabled()
const;
166 bool isRatificationMechanismEnabled()
const;
175 bool isPinPlainTransmissionEnabled()
const;
184 bool isSvLoadAndDebitLogEnabled()
const;
193 bool isSvNegativeBalanceAuthorized()
const;
205 const std::shared_ptr<uint8_t> getKif(
const WriteAccessLevel writeAccessLevel,
206 const uint8_t kvc)
const;
217 const std::shared_ptr<uint8_t> getDefaultKif(
const WriteAccessLevel writeAccessLevel)
const;
228 const std::shared_ptr<uint8_t> getDefaultKvc(
const WriteAccessLevel writeAccessLevel)
const;
239 bool isSessionKeyAuthorized(
const std::shared_ptr<uint8_t> kif,
240 const std::shared_ptr<uint8_t> kvc)
const;
251 bool isSvKeyAuthorized(
const std::shared_ptr<uint8_t> kif,
252 const std::shared_ptr<uint8_t> kvc)
const;
261 const std::shared_ptr<uint8_t> getPinVerificationCipheringKif()
const;
270 const std::shared_ptr<uint8_t> getPinVerificationCipheringKvc()
const;
279 const std::shared_ptr<uint8_t> getPinModificationCipheringKif()
const;
288 const std::shared_ptr<uint8_t> getPinModificationCipheringKvc()
const;
294 static const std::string WRITE_ACCESS_LEVEL;
299 bool mIsMultipleSessionEnabled =
false;
304 bool mIsRatificationMechanismEnabled =
false;
309 bool mIsPinPlainTransmissionEnabled =
false;
314 bool mIsSvLoadAndDebitLogEnabled =
false;
319 bool mIsSvNegativeBalanceAuthorized =
false;
324 std::map<WriteAccessLevel, std::map<uint8_t, uint8_t>> mKifMap;
329 std::map<WriteAccessLevel, uint8_t> mDefaultKifMap;
334 std::map<WriteAccessLevel, uint8_t> mDefaultKvcMap;
339 std::vector<int> mAuthorizedSessionKeys;
344 std::vector<int> mAuthorizedSvKeys;
349 std::shared_ptr<uint8_t> mPinVerificationCipheringKif;
354 std::shared_ptr<uint8_t> mPinVerificationCipheringKvc;
359 std::shared_ptr<uint8_t> mPinModificationCipheringKif;
364 std::shared_ptr<uint8_t> mPinModificationCipheringKvc;
#define KEYPLECARDCALYPSO_API