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