Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/tomcrypt/src/pk/pkcs1/pkcs_1_i2osp.c
4396 views
1
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
2
*
3
* LibTomCrypt is a library that provides various cryptographic
4
* algorithms in a highly modular and flexible manner.
5
*
6
* The library is free for all purposes without any express
7
* guarantee it works.
8
*/
9
#include "tomcrypt.h"
10
11
/**
12
@file pkcs_1_i2osp.c
13
Integer to Octet I2OSP, Tom St Denis
14
*/
15
16
#ifdef LTC_PKCS_1
17
18
/* always stores the same # of bytes, pads with leading zero bytes
19
as required
20
*/
21
22
/**
23
PKCS #1 Integer to binary
24
@param n The integer to store
25
@param modulus_len The length of the RSA modulus
26
@param out [out] The destination for the integer
27
@return CRYPT_OK if successful
28
*/
29
int pkcs_1_i2osp(void *n, unsigned long modulus_len, unsigned char *out)
30
{
31
unsigned long size;
32
33
size = mp_unsigned_bin_size(n);
34
35
if (size > modulus_len) {
36
return CRYPT_BUFFER_OVERFLOW;
37
}
38
39
/* store it */
40
zeromem(out, modulus_len);
41
return mp_to_unsigned_bin(n, out+(modulus_len-size));
42
}
43
44
#endif /* LTC_PKCS_1 */
45
46