]> pd.if.org Git - zpackage/blob - libtomcrypt/src/pk/pkcs1/pkcs_1_i2osp.c
commit files needed for zpm-fetchurl
[zpackage] / libtomcrypt / src / pk / pkcs1 / pkcs_1_i2osp.c
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
47 /* ref:         $Format:%D$ */
48 /* git commit:  $Format:%H$ */
49 /* commit time: $Format:%ai$ */