blob: 82bea2a6745a7aa093b81800e86f6540d67c6978 [file] [log] [blame]
Denys Vlasenko11d00962017-01-15 00:12:42 +01001/*
2 * Copyright (C) 2017 Denys Vlasenko
3 *
4 * Licensed under GPLv2, see file LICENSE in this source tree.
Denys Vlasenko3f8ecd92017-01-15 14:16:51 +01005 *
6 * Selected few declarations for RSA.
Denys Vlasenko11d00962017-01-15 00:12:42 +01007 */
8
9typedef 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 */
Denys Vlasenko6b1b0042017-01-19 15:51:00 +010013//bbox psPool_t *pool;
Denys Vlasenko11d00962017-01-15 00:12:42 +010014} psRsaKey_t;
15
Denys Vlasenkoa6192f32018-11-25 16:17:26 +010016static 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
Denys Vlasenko11d00962017-01-15 00:12:42 +010028#define psRsaEncryptPub(pool, key, in, inlen, out, outlen, data) \
Denys Vlasenko6b1b0042017-01-19 15:51:00 +010029 psRsaEncryptPub( key, in, inlen, out, outlen)
Denys Vlasenko11d00962017-01-15 00:12:42 +010030int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key,
31 unsigned char *in, uint32 inlen,
Denys Vlasenko83e5c622018-11-23 17:21:38 +010032 unsigned char *out, uint32 outlen, void *data) FAST_FUNC;