From 689f19b33ef5e33697692c3b4c9dbf127727df32 Mon Sep 17 00:00:00 2001 From: merlokk <807634+merlokk@users.noreply.github.com> Date: Sat, 5 Feb 2022 16:49:25 +0200 Subject: [PATCH] commands --- client/src/cipurse/cipursecore.c | 8 ++++++++ client/src/cipurse/cipursecore.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/client/src/cipurse/cipursecore.c b/client/src/cipurse/cipursecore.c index 855e1e56d..cfeddf2af 100644 --- a/client/src/cipurse/cipursecore.c +++ b/client/src/cipurse/cipursecore.c @@ -212,6 +212,14 @@ int CIPURSEUpdateBinary(uint16_t offset, uint8_t *data, uint16_t datalen, uint8_ return CIPURSEExchange((sAPDU_t) {0x00, 0xd6, (offset >> 8) & 0x7f, offset & 0xff, datalen, data}, result, max_result_len, result_len, sw); } +int CIPURSEUpdateKeyAttrib(uint8_t key_attrib, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw) { + return CIPURSEExchangeEx(false, true, (sAPDU_t) {0x80, 0x4e, 0, key_attrib, 0, NULL}, false, 0, result, max_result_len, result_len, sw); +} + +int CIPURSEUpdateKey(uint8_t encryt_key_num, uint8_t udate_key_num, uint8_t *key, uint16_t key_len, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw) { + return CIPURSEExchangeEx(false, true, (sAPDU_t) {0x80, 0xd6, encryt_key_num, udate_key_num, key_len, key}, false, 0, result, max_result_len, result_len, sw); +} + int CIPURSECommitTransaction(uint16_t *sw) { uint8_t result[APDU_RES_LEN] = {0}; size_t result_len = 0; diff --git a/client/src/cipurse/cipursecore.h b/client/src/cipurse/cipursecore.h index 89af5e5bf..ee6231c93 100644 --- a/client/src/cipurse/cipursecore.h +++ b/client/src/cipurse/cipursecore.h @@ -55,6 +55,9 @@ int CIPURSEUpdateFileAttributes(uint8_t *data, uint16_t datalen, uint8_t *result int CIPURSEReadBinary(uint16_t offset, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw); int CIPURSEUpdateBinary(uint16_t offset, uint8_t *data, uint16_t datalen, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw); +int CIPURSEUpdateKeyAttrib(uint8_t key_attrib, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw); +int CIPURSEUpdateKey(uint8_t encryt_key_num, uint8_t udate_key_num, uint8_t *key, uint16_t key_len, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw); + int CIPURSECommitTransaction(uint16_t *sw); int CIPURSECancelTransaction(uint16_t *sw);