Hence, the encoding is always in PKCS #1 version 1.5 format.
Any questions and comments regarding this modified version should be
- sent to priikone@poseidon.pspt.fi.
+ sent to priikone@silcnet.org.
References: ftp://ftp.rsasecurity.com/pub/pkcs/ascii/pkcs-1v2.asc,
ftp://ftp.rsasecurity.com/pub/pkcs/ascii/pkcs-1.asc,
*/
#include "silcincludes.h"
+#include "rsa_internal.h"
#include "rsa.h"
#define RSA_BLOCK_MIN_PAD_LEN 8
* the rules defined in PKCS #1.
*/
static unsigned char *
-RSA_FormatOneBlock(uint32 modulusLen, RSA_BlockType blockType,
- unsigned char *data, uint32 data_len)
+RSA_FormatOneBlock(SilcUInt32 modulusLen, RSA_BlockType blockType,
+ unsigned char *data, SilcUInt32 data_len)
{
unsigned char *block;
unsigned char *bp;
for (i = 0; i < padLen; i++) {
/* Pad with non-zero random data. */
do {
- silc_rng_global_get_byte(bp + i);
+ bp[i] = silc_rng_global_get_byte();
} while (bp[i] == RSA_BLOCK_AFTER_PAD_OCTET);
}
bp += padLen;
}
static int
-RSA_FormatBlock(unsigned char **result, uint32 *result_len,
- uint32 modulusLen,
+RSA_FormatBlock(unsigned char **result, SilcUInt32 *result_len,
+ SilcUInt32 modulusLen,
RSA_BlockType blockType, unsigned char *data,
- uint32 data_len)
+ SilcUInt32 data_len)
{
/*
* XXX For now assume that the data length fits in a single
*/
unsigned char *
RSA_DecodeOneBlock(unsigned char *data,
- uint32 modulusLen,
- uint32 expectedLen,
+ SilcUInt32 modulusLen,
+ SilcUInt32 expectedLen,
RSA_BlockType bt,
- uint32 *pResultLen)
+ SilcUInt32 *pResultLen)
{
RSA_BlockType blockType;
unsigned char *dp, *res;
- uint32 i, len = 0;
+ SilcUInt32 i, len = 0;
dp = data;
if (dp[0] != RSA_BLOCK_FIRST_OCTET) {
SilcMPInt mp_tmp;
SilcMPInt mp_dst;
unsigned char *padded;
- uint32 padded_len, len = key->bits / 8;
+ SilcUInt32 padded_len, len = key->bits / 8;
/* Pad data */
if (!RSA_FormatBlock(&padded, &padded_len, len,
SilcMPInt mp_tmp;
SilcMPInt mp_dst;
unsigned char *padded, *unpadded;
- uint32 padded_len;
+ SilcUInt32 padded_len;
silc_mp_init(&mp_tmp);
silc_mp_init(&mp_dst);
SilcMPInt mp_tmp;
SilcMPInt mp_dst;
unsigned char *padded;
- uint32 padded_len;
- uint32 len = key->bits / 8;
+ SilcUInt32 padded_len;
+ SilcUInt32 len = key->bits / 8;
/* Pad data */
if (!RSA_FormatBlock(&padded, &padded_len, len, RSA_BlockPrivate,
SilcMPInt mp_tmp2;
SilcMPInt mp_dst;
unsigned char *verify, *unpadded;
- uint32 verify_len, len = key->bits / 8;
+ SilcUInt32 verify_len, len = key->bits / 8;
silc_mp_init(&mp_tmp2);
silc_mp_init(&mp_dst);