17#include "IllegalArgumentException.h"
31using namespace keyple::core::util;
34const std::map<const int, const std::shared_ptr<StatusProperties>>
35 CmdCardChangeKey::STATUS_TABLE = initStatusTable();
38 const uint8_t keyIndex,
39 const std::vector<uint8_t>& cryptogram)
42 const uint8_t cla = calypsoCardClass.
getValue();
43 const uint8_t p1 = 0x00;
46 std::make_shared<ApduRequestAdapter>(
55const std::map<const int, const std::shared_ptr<StatusProperties>>
56 CmdCardChangeKey::initStatusTable()
58 std::map<const int, const std::shared_ptr<StatusProperties>> m =
62 std::make_shared<StatusProperties>(
"Lc value not supported (not 04h, 10h, 18h, 20h).",
65 std::make_shared<StatusProperties>(
"Transaction Counter is 0.",
66 typeid(CardTerminatedException))});
68 std::make_shared<StatusProperties>(
"Security conditions not fulfilled (Get " \
69 "Challenge not done: challenge unavailable).",
70 typeid(CardSecurityContextException))});
72 std::make_shared<StatusProperties>(
"Access forbidden (a session is open or DF is " \
74 typeid(CardAccessForbiddenException))});
76 std::make_shared<StatusProperties>(
"Incorrect Cryptogram.",
77 typeid(CardSecurityDataException))});
79 std::make_shared<StatusProperties>(
"Decrypted message incorrect (key algorithm not " \
80 "supported, incorrect padding, etc.).",
81 typeid(CardSecurityDataException))});
83 std::make_shared<StatusProperties>(
"Lc not compatible with P2.",
84 typeid(CardIllegalParameterException))});
86 std::make_shared<StatusProperties>(
"Incorrect P1, P2.",
87 typeid(CardIllegalParameterException))});
92const std::map<const int, const std::shared_ptr<StatusProperties>>&
static const std::map< const int, const std::shared_ptr< StatusProperties > > STATUS_TABLE
virtual void setApduRequest(const std::shared_ptr< ApduRequestAdapter > apduRequest) final
static const CalypsoCardCommand CHANGE_KEY
uint8_t getInstructionByte() const
CmdCardChangeKey(const CalypsoCardClass calypsoCardClass, const uint8_t keyIndex, const std::vector< uint8_t > &cryptogram)
bool isSessionBufferUsed() const override
const std::map< const int, const std::shared_ptr< StatusProperties > > & getStatusTable() const override