| /* |
| * Copyright (C) 2017 Denys Vlasenko |
| * |
| * Licensed under GPLv2, see file LICENSE in this source tree. |
| * |
| * Selected few declarations for RSA. |
| */ |
| |
| typedef struct { |
| pstm_int e, d, N, qP, dP, dQ, p, q; |
| uint32 size; /* Size of the key in bytes */ |
| int32 optimized; /* 1 for optimized */ |
| //bbox psPool_t *pool; |
| } psRsaKey_t; |
| |
| static ALWAYS_INLINE void psRsaKey_clear(psRsaKey_t *key) |
| { |
| pstm_clear(&key->N); |
| pstm_clear(&key->e); |
| pstm_clear(&key->d); |
| pstm_clear(&key->p); |
| pstm_clear(&key->q); |
| pstm_clear(&key->dP); |
| pstm_clear(&key->dQ); |
| pstm_clear(&key->qP); |
| } |
| |
| #define psRsaEncryptPub(pool, key, in, inlen, out, outlen, data) \ |
| psRsaEncryptPub( key, in, inlen, out, outlen) |
| int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key, |
| unsigned char *in, uint32 inlen, |
| unsigned char *out, uint32 outlen, void *data) FAST_FUNC; |