31#ifndef OCRYPTO_RSA_PRIMITIVES_H
32#define OCRYPTO_RSA_PRIMITIVES_H
46#define OCRYPTO_RSA_PUB_KEY_SIZE(bits) ((bits)/32)
51#define OCRYPTO_RSA_KEY_SIZE(bits) ((bits)/32*2)
56#define OCRYPTO_RSA_CRT_KEY_SIZE(bits) ((bits)/32*7/2)
62#define OCRYPTO_RSA_PUB_MEM_SIZE(bits) ((bits)/32*11)
67#define OCRYPTO_RSA_MEM_SIZE(bits) ((bits)/32*26)
72#define OCRYPTO_RSA_CRT_MEM_SIZE(bits) ((bits)/32*14)
139 const uint8_t *n,
size_t n_len,
162 const uint8_t *n,
size_t n_len,
163 const uint8_t *d,
size_t d_len);
191 const uint8_t *p,
size_t p_len,
192 const uint8_t *q,
size_t q_len,
193 const uint8_t *dp,
size_t dp_len,
194 const uint8_t *dq,
size_t dq_len,
195 const uint8_t *qinv,
size_t qi_len);
223 uint8_t *c,
size_t c_len,
224 const uint8_t *m,
size_t m_len,
246 uint8_t *m,
size_t m_len,
247 const uint8_t *c,
size_t c_len,
269 uint8_t *m,
size_t m_len,
270 const uint8_t *c,
size_t c_len,
int ocrypto_rsa_init_pub_key(ocrypto_rsa_pub_key *key, uint32_t *key_mem, const uint8_t *n, size_t n_len, uint32_t e)
int ocrypto_rsa_init_crt_key(ocrypto_rsa_crt_key *key, uint32_t *key_mem, const uint8_t *p, size_t p_len, const uint8_t *q, size_t q_len, const uint8_t *dp, size_t dp_len, const uint8_t *dq, size_t dq_len, const uint8_t *qinv, size_t qi_len)
int ocrypto_rsa_init_key(ocrypto_rsa_key *key, uint32_t *key_mem, const uint8_t *n, size_t n_len, const uint8_t *d, size_t d_len)
int ocrypto_rsa_crt_exp(uint8_t *m, size_t m_len, const uint8_t *c, size_t c_len, const ocrypto_rsa_crt_key *key, uint32_t *mem)
int ocrypto_rsa_pub_exp(uint8_t *c, size_t c_len, const uint8_t *m, size_t m_len, const ocrypto_rsa_pub_key *pk, uint32_t *mem)
int ocrypto_rsa_exp(uint8_t *m, size_t m_len, const uint8_t *c, size_t c_len, const ocrypto_rsa_key *key, uint32_t *mem)
Definition ocrypto_rsa_primitives.h:101
Definition ocrypto_rsa_primitives.h:90
Definition ocrypto_rsa_primitives.h:79