diff options
| author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-07-07 10:40:37 +0200 |
|---|---|---|
| committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-07-07 10:41:04 +0200 |
| commit | 115f165b6e3bb74f45e13a65c5f4f82f28664a2c (patch) | |
| tree | ec55b63c736b5bef6061202c8bd31b08796fa2dc /libtomcrypt/pk/asn1/der/sequence | |
| parent | 58a20b797e5a987fc8f7c5bea3be24d754908bf5 (diff) | |
| download | cryptodev-linux-115f165b6e3bb74f45e13a65c5f4f82f28664a2c.tar.gz cryptodev-linux-115f165b6e3bb74f45e13a65c5f4f82f28664a2c.tar.xz cryptodev-linux-115f165b6e3bb74f45e13a65c5f4f82f28664a2c.zip | |
Added a modified libtomcrypt with DSA and RSA algorithms.
Diffstat (limited to 'libtomcrypt/pk/asn1/der/sequence')
| -rw-r--r-- | libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c | 13 | ||||
| -rw-r--r-- | libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c | 4 |
2 files changed, 12 insertions, 5 deletions
diff --git a/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c b/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c index 607d5eb..2e72dbd 100644 --- a/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c +++ b/libtomcrypt/pk/asn1/der/sequence/der_decode_sequence_flexi.c @@ -122,17 +122,24 @@ int der_decode_sequence_flexi(const unsigned char *in, unsigned long *inlen, ltc /* init field */ l->type = LTC_ASN1_INTEGER; l->size = 1; - if ((err = mp_init(&l->data)) != CRYPT_OK) { + + l->data = XMALLOC(sizeof(mp_int)); + if (l->data == NULL) { + err = CRYPT_MEM; + goto error; + } + + if ((err = mp_init((mp_int_t)l->data)) != CRYPT_OK) { goto error; } /* decode field */ - if ((err = der_decode_integer(in, *inlen, l->data)) != CRYPT_OK) { + if ((err = der_decode_integer(in, *inlen, (mp_int_t)l->data)) != CRYPT_OK) { goto error; } /* calc length of object */ - if ((err = der_length_integer(l->data, &len)) != CRYPT_OK) { + if ((err = der_length_integer((mp_int_t)l->data, &len)) != CRYPT_OK) { goto error; } break; diff --git a/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c b/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c index a6769b3..a0e0d2d 100644 --- a/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c +++ b/libtomcrypt/pk/asn1/der/sequence/der_sequence_free.c @@ -47,13 +47,13 @@ void der_sequence_free(ltc_asn1_list *in) case LTC_ASN1_SET: case LTC_ASN1_SETOF: case LTC_ASN1_SEQUENCE: break; - case LTC_ASN1_INTEGER : if (in->data != NULL) { mp_clear(in->data); } break; + case LTC_ASN1_INTEGER : if (in->data != NULL) { mp_clear(in->data); XFREE(in->data); } break; default : if (in->data != NULL) { XFREE(in->data); } } /* move to next and free current */ l = in->next; - free(in); + XFREE(in); in = l; } } |
