1 /*
2  * Copyright (C) 2017 Denys Vlasenko
3  *
4  * Licensed under GPLv2, see file LICENSE in this source tree.
5  *
6  * Selected few declarations for RSA.
7  */
8 
9 typedef struct {
10 	pstm_int    e, d, N, qP, dP, dQ, p, q;
11 	uint32      size;   /* Size of the key in bytes */
12 	int32       optimized; /* 1 for optimized */
13 //bbox	psPool_t *pool;
14 } psRsaKey_t;
15 
psRsaKey_clear(psRsaKey_t * key)16 static ALWAYS_INLINE void psRsaKey_clear(psRsaKey_t *key)
17 {
18 	pstm_clear(&key->N);
19 	pstm_clear(&key->e);
20 	pstm_clear(&key->d);
21 	pstm_clear(&key->p);
22 	pstm_clear(&key->q);
23 	pstm_clear(&key->dP);
24 	pstm_clear(&key->dQ);
25 	pstm_clear(&key->qP);
26 }
27 
28 #define psRsaEncryptPub(pool, key, in, inlen, out, outlen, data) \
29         psRsaEncryptPub(      key, in, inlen, out, outlen)
30 int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key,
31                                                 unsigned char *in, uint32 inlen,
32                                                 unsigned char *out, uint32 outlen, void *data) FAST_FUNC;
33