Skip to main content
Version: 0.1.22

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.