RSA
RSA key generation, encryption, decryption, and signatures.
Types
rsa_key_t
RSA key pair (public and private components). Initialized with noxtls_rsa_key_init, generated with noxtls_rsa_key_generate, freed with noxtls_rsa_key_free.
rsa_key_size_t
RSA key size (e.g. 2048, 4096 bits). Used when initializing or generating an rsa_key_t.
API
noxtls_rsa_key_init
noxtls_return_t noxtls_rsa_key_init(rsa_key_t *key, rsa_key_size_t key_size);
Initialize RSA key structure. key is rsa_key_t; key_size is rsa_key_size_t.
noxtls_rsa_key_generate
noxtls_return_t noxtls_rsa_key_generate(rsa_key_t *key, rsa_key_size_t key_size);
Generate RSA key pair. key is rsa_key_t; key_size is rsa_key_size_t.
Returns: noxtls_return_t: NOXTLS_RETURN_SUCCESS on success.
noxtls_rsa_key_free
noxtls_return_t noxtls_rsa_key_free(rsa_key_t *key);
Free RSA key structure. key is rsa_key_t.
Returns: noxtls_return_t: NOXTLS_RETURN_SUCCESS on success.
noxtls_rsa_encrypt
noxtls_return_t noxtls_rsa_encrypt(const rsa_key_t *key, const uint8_t *plaintext, uint32_t plaintext_len, uint8_t *ciphertext, uint32_t *ciphertext_len);
RSA Encryption. key is rsa_key_t.
Returns: noxtls_return_t: NOXTLS_RETURN_SUCCESS on success.
noxtls_rsa_decrypt
noxtls_return_t noxtls_rsa_decrypt(const rsa_key_t *key, const uint8_t *ciphertext, uint32_t ciphertext_len, uint8_t *plaintext, uint32_t *plaintext_len);
RSA Decryption. key is rsa_key_t.
Returns: noxtls_return_t: NOXTLS_RETURN_SUCCESS on success.
noxtls_rsa_decrypt_crt_only
noxtls_return_t noxtls_rsa_decrypt_crt_only(const rsa_key_t *key, const uint8_t *ciphertext, uint32_t ciphertext_len, uint8_t *plaintext, uint32_t *plaintext_len);
RSA decrypt using CRT path only (for unit testing).
Returns: noxtls_return_t: NOXTLS_RETURN_SUCCESS on success.
noxtls_rsa_sign
noxtls_return_t noxtls_rsa_sign(const rsa_key_t *key, const uint8_t *message, uint32_t message_len, uint8_t *signature, uint32_t *signature_len, noxtls_hash_algos_t hash_algo);
RSA Signature Generation. key is rsa_key_t; hash_algo is noxtls_hash_algos_t.
noxtls_rsa_verify
noxtls_return_t noxtls_rsa_verify(const rsa_key_t *key, const uint8_t *message, uint32_t message_len, const uint8_t *signature, uint32_t signature_len, noxtls_hash_algos_t hash_algo);
RSA Signature Verification. key is rsa_key_t; hash_algo is noxtls_hash_algos_t.
Returns: noxtls_return_t: NOXTLS_RETURN_SUCCESS on success.