SE050 Driver
API reference
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
se050::cmd Namespace Reference

Classes

struct  VersionInfo
 

Typedefs

using ObjectId = std::array< std::uint8_t, 4 >
 

Enumerations

enum class  MemoryType : std::uint8_t { Persistent = 0x01 , TransientReset = 0x02 , TransientDeselect = 0x03 }
 
enum class  EcCurve : std::uint8_t {
  NistP192 = 0x01 , NistP224 = 0x02 , NistP256 = 0x03 , NistP384 = 0x04 ,
  NistP521 = 0x05
}
 
enum class  EcdsaAlgo : std::uint8_t {
  Sha1 = 0x11 , Sha224 = 0x25 , Sha256 = 0x21 , Sha384 = 0x22 ,
  Sha512 = 0x26
}
 

Functions

Error BuildGetVersion (std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildGetRandom (std::uint16_t random_len, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildGetFreeMemory (MemoryType memory_type, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildDeleteSecureObject (const ObjectId &object_id, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildCheckObjectExists (const ObjectId &object_id, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildGenerateEcKeyPair (const ObjectId &object_id, EcCurve curve, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildWriteBinary (const ObjectId &object_id, const std::uint8_t *data, std::size_t data_len, bool has_offset, std::uint16_t offset, bool has_file_length, std::uint16_t file_length, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildWriteAesKey (const ObjectId &object_id, const std::uint8_t *key, std::size_t key_len, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildCipherOneShot (const ObjectId &key_id, bool decrypt, const std::uint8_t *data, std::size_t data_len, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildReadObject (const ObjectId &object_id, bool has_offset, std::uint16_t offset, bool has_length, std::uint16_t length, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildEcdsaSign (const ObjectId &key_id, EcdsaAlgo algo, const std::uint8_t *digest, std::size_t digest_len, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error BuildEcdsaVerify (const ObjectId &key_id, EcdsaAlgo algo, const std::uint8_t *digest, std::size_t digest_len, const std::uint8_t *signature, std::size_t signature_len, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error ParseResponseTag1 (const std::uint8_t *rapdu, std::size_t rapdu_len, const std::uint8_t **value_out, std::size_t *value_len_out, apdu::StatusWords *sw_out) noexcept
 
Error ParseVersionInfo (const std::uint8_t *rapdu, std::size_t rapdu_len, VersionInfo *out) noexcept
 
Error ParseFreeMemory (const std::uint8_t *rapdu, std::size_t rapdu_len, std::uint16_t *free_bytes) noexcept
 
Error ParseDataTag1 (const std::uint8_t *rapdu, std::size_t rapdu_len, std::uint8_t *out, std::size_t out_cap, std::size_t *out_len) noexcept
 
Error ParseVerifyResult (const std::uint8_t *rapdu, std::size_t rapdu_len, bool *verified) noexcept
 
Error ParseObjectExistsResult (const std::uint8_t *rapdu, std::size_t rapdu_len, bool *exists) noexcept
 

Variables

constexpr std::uint8_t kClaNoSm = 0x80U
 
constexpr std::uint8_t kInsWrite = 0x01U
 
constexpr std::uint8_t kInsRead = 0x02U
 
constexpr std::uint8_t kInsCrypto = 0x03U
 
constexpr std::uint8_t kInsMgmt = 0x04U
 
constexpr std::uint8_t kP1Default = 0x00U
 
constexpr std::uint8_t kP1Aes = 0x03U
 
constexpr std::uint8_t kP1Binary = 0x06U
 
constexpr std::uint8_t kP1Signature = 0x0CU
 
constexpr std::uint8_t kP1Cipher = 0x0EU
 
constexpr std::uint8_t kP1Ec = 0x01U
 
constexpr std::uint8_t kP1KeyPair = 0x60U
 
constexpr std::uint8_t kP2Default = 0x00U
 
constexpr std::uint8_t kP2Version = 0x20U
 
constexpr std::uint8_t kP2Memory = 0x22U
 
constexpr std::uint8_t kP2DeleteObject = 0x28U
 
constexpr std::uint8_t kP2Random = 0x49U
 
constexpr std::uint8_t kP2Exist = 0x27U
 
constexpr std::uint8_t kP2Sign = 0x09U
 
constexpr std::uint8_t kP2Verify = 0x0AU
 
constexpr std::uint8_t kP2EncryptOneshot = 0x37U
 
constexpr std::uint8_t kP2DecryptOneshot = 0x38U
 
constexpr std::uint8_t kCipherAesEcbNopad = 0x0EU
 
constexpr std::uint8_t kTag1 = 0x41U
 
constexpr std::uint8_t kTag2 = 0x42U
 
constexpr std::uint8_t kTag3 = 0x43U
 
constexpr std::uint8_t kTag5 = 0x45U
 
constexpr std::uint8_t kResultSuccess = 0x01U
 

Typedef Documentation

◆ ObjectId

using se050::cmd::ObjectId = typedef std::array<std::uint8_t, 4>

Enumeration Type Documentation

◆ EcCurve

enum class se050::cmd::EcCurve : std::uint8_t
strong
Enumerator
NistP192 
NistP224 
NistP256 
NistP384 
NistP521 

◆ EcdsaAlgo

enum class se050::cmd::EcdsaAlgo : std::uint8_t
strong
Enumerator
Sha1 
Sha224 
Sha256 
Sha384 
Sha512 

◆ MemoryType

enum class se050::cmd::MemoryType : std::uint8_t
strong
Enumerator
Persistent 
TransientReset 
TransientDeselect 

Function Documentation

◆ BuildCheckObjectExists()

Error se050::cmd::BuildCheckObjectExists ( const ObjectId &  object_id,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildCipherOneShot()

Error se050::cmd::BuildCipherOneShot ( const ObjectId &  key_id,
bool  decrypt,
const std::uint8_t *  data,
std::size_t  data_len,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildDeleteSecureObject()

Error se050::cmd::BuildDeleteSecureObject ( const ObjectId &  object_id,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildEcdsaSign()

Error se050::cmd::BuildEcdsaSign ( const ObjectId &  key_id,
EcdsaAlgo  algo,
const std::uint8_t *  digest,
std::size_t  digest_len,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildEcdsaVerify()

Error se050::cmd::BuildEcdsaVerify ( const ObjectId &  key_id,
EcdsaAlgo  algo,
const std::uint8_t *  digest,
std::size_t  digest_len,
const std::uint8_t *  signature,
std::size_t  signature_len,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildGenerateEcKeyPair()

Error se050::cmd::BuildGenerateEcKeyPair ( const ObjectId &  object_id,
EcCurve  curve,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildGetFreeMemory()

Error se050::cmd::BuildGetFreeMemory ( MemoryType  memory_type,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildGetRandom()

Error se050::cmd::BuildGetRandom ( std::uint16_t  random_len,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildGetVersion()

Error se050::cmd::BuildGetVersion ( std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildReadObject()

Error se050::cmd::BuildReadObject ( const ObjectId &  object_id,
bool  has_offset,
std::uint16_t  offset,
bool  has_length,
std::uint16_t  length,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildWriteAesKey()

Error se050::cmd::BuildWriteAesKey ( const ObjectId &  object_id,
const std::uint8_t *  key,
std::size_t  key_len,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ BuildWriteBinary()

Error se050::cmd::BuildWriteBinary ( const ObjectId &  object_id,
const std::uint8_t *  data,
std::size_t  data_len,
bool  has_offset,
std::uint16_t  offset,
bool  has_file_length,
std::uint16_t  file_length,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ ParseDataTag1()

Error se050::cmd::ParseDataTag1 ( const std::uint8_t *  rapdu,
std::size_t  rapdu_len,
std::uint8_t *  out,
std::size_t  out_cap,
std::size_t *  out_len 
)
inlinenoexcept

◆ ParseFreeMemory()

Error se050::cmd::ParseFreeMemory ( const std::uint8_t *  rapdu,
std::size_t  rapdu_len,
std::uint16_t *  free_bytes 
)
inlinenoexcept

◆ ParseObjectExistsResult()

Error se050::cmd::ParseObjectExistsResult ( const std::uint8_t *  rapdu,
std::size_t  rapdu_len,
bool *  exists 
)
inlinenoexcept

◆ ParseResponseTag1()

Error se050::cmd::ParseResponseTag1 ( const std::uint8_t *  rapdu,
std::size_t  rapdu_len,
const std::uint8_t **  value_out,
std::size_t *  value_len_out,
apdu::StatusWords *  sw_out 
)
inlinenoexcept

◆ ParseVerifyResult()

Error se050::cmd::ParseVerifyResult ( const std::uint8_t *  rapdu,
std::size_t  rapdu_len,
bool *  verified 
)
inlinenoexcept

◆ ParseVersionInfo()

Error se050::cmd::ParseVersionInfo ( const std::uint8_t *  rapdu,
std::size_t  rapdu_len,
VersionInfo *  out 
)
inlinenoexcept

Variable Documentation

◆ kCipherAesEcbNopad

constexpr std::uint8_t se050::cmd::kCipherAesEcbNopad = 0x0EU
inlineconstexpr

◆ kClaNoSm

constexpr std::uint8_t se050::cmd::kClaNoSm = 0x80U
inlineconstexpr

◆ kInsCrypto

constexpr std::uint8_t se050::cmd::kInsCrypto = 0x03U
inlineconstexpr

◆ kInsMgmt

constexpr std::uint8_t se050::cmd::kInsMgmt = 0x04U
inlineconstexpr

◆ kInsRead

constexpr std::uint8_t se050::cmd::kInsRead = 0x02U
inlineconstexpr

◆ kInsWrite

constexpr std::uint8_t se050::cmd::kInsWrite = 0x01U
inlineconstexpr

◆ kP1Aes

constexpr std::uint8_t se050::cmd::kP1Aes = 0x03U
inlineconstexpr

◆ kP1Binary

constexpr std::uint8_t se050::cmd::kP1Binary = 0x06U
inlineconstexpr

◆ kP1Cipher

constexpr std::uint8_t se050::cmd::kP1Cipher = 0x0EU
inlineconstexpr

◆ kP1Default

constexpr std::uint8_t se050::cmd::kP1Default = 0x00U
inlineconstexpr

◆ kP1Ec

constexpr std::uint8_t se050::cmd::kP1Ec = 0x01U
inlineconstexpr

◆ kP1KeyPair

constexpr std::uint8_t se050::cmd::kP1KeyPair = 0x60U
inlineconstexpr

◆ kP1Signature

constexpr std::uint8_t se050::cmd::kP1Signature = 0x0CU
inlineconstexpr

◆ kP2DecryptOneshot

constexpr std::uint8_t se050::cmd::kP2DecryptOneshot = 0x38U
inlineconstexpr

◆ kP2Default

constexpr std::uint8_t se050::cmd::kP2Default = 0x00U
inlineconstexpr

◆ kP2DeleteObject

constexpr std::uint8_t se050::cmd::kP2DeleteObject = 0x28U
inlineconstexpr

◆ kP2EncryptOneshot

constexpr std::uint8_t se050::cmd::kP2EncryptOneshot = 0x37U
inlineconstexpr

◆ kP2Exist

constexpr std::uint8_t se050::cmd::kP2Exist = 0x27U
inlineconstexpr

◆ kP2Memory

constexpr std::uint8_t se050::cmd::kP2Memory = 0x22U
inlineconstexpr

◆ kP2Random

constexpr std::uint8_t se050::cmd::kP2Random = 0x49U
inlineconstexpr

◆ kP2Sign

constexpr std::uint8_t se050::cmd::kP2Sign = 0x09U
inlineconstexpr

◆ kP2Verify

constexpr std::uint8_t se050::cmd::kP2Verify = 0x0AU
inlineconstexpr

◆ kP2Version

constexpr std::uint8_t se050::cmd::kP2Version = 0x20U
inlineconstexpr

◆ kResultSuccess

constexpr std::uint8_t se050::cmd::kResultSuccess = 0x01U
inlineconstexpr

◆ kTag1

constexpr std::uint8_t se050::cmd::kTag1 = 0x41U
inlineconstexpr

◆ kTag2

constexpr std::uint8_t se050::cmd::kTag2 = 0x42U
inlineconstexpr

◆ kTag3

constexpr std::uint8_t se050::cmd::kTag3 = 0x43U
inlineconstexpr

◆ kTag5

constexpr std::uint8_t se050::cmd::kTag5 = 0x45U
inlineconstexpr