DevTest создаёт ключи в формате PKCS.
- Код: Выделить всё
#define S4_RSA_MODULUS_LEN 128 /** RSA key modules length,in bytes */
#define S4_RSA_PRIME_LEN 64 /** RSA key prime length,in bytes*/
/** RSA public key structure*/
typedef struct {
unsigned char modulus[S4_RSA_MODULUS_LEN]; /* modulus*/
unsigned char exponent[S4_RSA_MODULUS_LEN]; /* public exponent*/
} S4_RSA_PUBLIC_KEY;
/** RSA private key structure*/
typedef struct {
unsigned char modulus[S4_RSA_MODULUS_LEN]; /* modulus*/
unsigned char publicExponent[S4_RSA_MODULUS_LEN]; /* public exponent*/
unsigned char exponent[S4_RSA_MODULUS_LEN]; /* private exponent*/
unsigned char prime[2][S4_RSA_PRIME_LEN]; /* prime factors*/
unsigned char primeExponent[2][S4_RSA_PRIME_LEN]; /* exponents for CRT*/
unsigned char coefficient[S4_RSA_PRIME_LEN]; /* CRT coefficient*/
} S4_RSA_PRIVATE_KEY;
Соответственно S4_RSA_PUBLIC_KEY равен (128+128) 256 байт, S4_RSA_PRIVATE_KEY равен (128+128+128+(2*64)+(2*64)+64) 704 байта
Для того, чтобы использовать эти ключи в SenseLock, их надо преобразовать в формат COS функциями
X_Pub2Cos и
X_Pri2Cos.
Зашифровывать и расшифровывать данные, использую ключи, сгенерированные в DevTest нужно функциями
RSAPublicEncrypt и
RSAPrivateDecrypt.