Mercurial > dropbear
comparison src/pk/asn1/der/octet/der_length_octet_string.c @ 209:39d5d58461d6 libtomcrypt-orig LTC_1.05
Import of libtomcrypt 1.05
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Wed, 06 Jul 2005 03:53:40 +0000 |
parents | |
children | d5faf4814ddb |
comparison
equal
deleted
inserted
replaced
191:1c15b283127b | 209:39d5d58461d6 |
---|---|
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 * Tom St Denis, [email protected], http://libtomcrypt.org | |
10 */ | |
11 #include "tomcrypt.h" | |
12 | |
13 /** | |
14 @file der_length_octet_string.c | |
15 ASN.1 DER, get length of OCTET STRING, Tom St Denis | |
16 */ | |
17 | |
18 #ifdef LTC_DER | |
19 /** | |
20 Gets length of DER encoding of OCTET STRING | |
21 @param noctets The number of octets in the string to encode | |
22 @param outlen [out] The length of the DER encoding for the given string | |
23 @return CRYPT_OK if successful | |
24 */ | |
25 int der_length_octet_string(unsigned long noctets, unsigned long *outlen) | |
26 { | |
27 LTC_ARGCHK(outlen != NULL); | |
28 | |
29 if (noctets < 128) { | |
30 /* 04 LL DD DD DD ... */ | |
31 *outlen = 2 + noctets; | |
32 } else if (noctets < 256) { | |
33 /* 04 81 LL DD DD DD ... */ | |
34 *outlen = 3 + noctets; | |
35 } else if (noctets < 65536UL) { | |
36 /* 04 82 LL LL DD DD DD ... */ | |
37 *outlen = 4 + noctets; | |
38 } else if (noctets < 16777216UL) { | |
39 /* 04 83 LL LL LL DD DD DD ... */ | |
40 *outlen = 5 + noctets; | |
41 } else { | |
42 return CRYPT_INVALID_ARG; | |
43 } | |
44 | |
45 return CRYPT_OK; | |
46 } | |
47 | |
48 #endif | |
49 | |
50 | |
51 /* $Source: /cvs/libtom/libtomcrypt/src/pk/asn1/der/octet/der_length_octet_string.c,v $ */ | |
52 /* $Revision: 1.1 $ */ | |
53 /* $Date: 2005/05/16 15:08:11 $ */ |