util-decode-der: decode GeneralizedTime

Decode ASN.1 element type GeneralizedTime in DER-encoded
structures.
pull/2284/head
Mats Klepsland 10 years ago committed by Victor Julien
parent b914861692
commit 03cda74b95

@ -88,6 +88,9 @@ static Asn1Generic * DecodeAsn1DerT61String(const unsigned char *buffer,
static Asn1Generic * DecodeAsn1DerUTCTime(const unsigned char *buffer,
uint32_t size, uint8_t depth,
uint32_t *errcode);
static Asn1Generic * DecodeAsn1DerGeneralizedTime(const unsigned char *buffer,
uint32_t size, uint8_t depth,
uint32_t *errcode);
static Asn1Generic * Asn1GenericNew(void)
{
@ -220,6 +223,9 @@ static Asn1Generic * DecodeAsn1DerGeneric(const unsigned char *buffer,
case ASN1_UTCTIME:
child = DecodeAsn1DerUTCTime(d_ptr, el_max_size, depth+1, errcode);
break;
case ASN1_GENERALIZEDTIME:
child = DecodeAsn1DerGeneralizedTime(d_ptr, el_max_size, depth+1, errcode);
break;
default:
/* unknown ASN.1 type */
child = NULL;
@ -862,6 +868,20 @@ static Asn1Generic * DecodeAsn1DerUTCTime(const unsigned char *buffer,
return a;
}
static Asn1Generic * DecodeAsn1DerGeneralizedTime(const unsigned char *buffer,
uint32_t max_size,
uint8_t depth,
uint32_t *errcode)
{
Asn1Generic *a;
a = DecodeAsn1DerIA5String(buffer, max_size, depth, errcode);
if (a != NULL)
a->type = ASN1_GENERALIZEDTIME;
return a;
}
Asn1Generic * DecodeDer(const unsigned char *buffer, uint32_t size,
uint32_t *errcode)
{

@ -40,20 +40,21 @@
#define ASN1_CLASS_CONTEXTSPEC 2
#define ASN1_CLASS_PRIVATE 3
#define ASN1_UNKNOWN 0
#define ASN1_BOOLEAN 0x01
#define ASN1_INTEGER 0x02
#define ASN1_BITSTRING 0x03
#define ASN1_OCTETSTRING 0x04
#define ASN1_NULL 0x05
#define ASN1_OID 0x06
#define ASN1_UTF8STRING 0x0c
#define ASN1_SEQUENCE 0x10
#define ASN1_SET 0x11
#define ASN1_PRINTSTRING 0x13
#define ASN1_T61STRING 0x14
#define ASN1_IA5STRING 0x16
#define ASN1_UTCTIME 0x17
#define ASN1_UNKNOWN 0
#define ASN1_BOOLEAN 0x01
#define ASN1_INTEGER 0x02
#define ASN1_BITSTRING 0x03
#define ASN1_OCTETSTRING 0x04
#define ASN1_NULL 0x05
#define ASN1_OID 0x06
#define ASN1_UTF8STRING 0x0c
#define ASN1_SEQUENCE 0x10
#define ASN1_SET 0x11
#define ASN1_PRINTSTRING 0x13
#define ASN1_T61STRING 0x14
#define ASN1_IA5STRING 0x16
#define ASN1_UTCTIME 0x17
#define ASN1_GENERALIZEDTIME 0x18
typedef struct Asn1ElementType_ {
uint8_t cls:2;

Loading…
Cancel
Save