mirror of https://github.com/ipxe/ipxe.git
[crypto] Accept UTCTime/GeneralizedTime with no "seconds" field
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/6/head
parent
f4c88d55bd
commit
f20c3742e7
|
@ -655,10 +655,16 @@ int asn1_generalized_time ( const struct asn1_cursor *cursor, time_t *time ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse digit string a pair at a time */
|
/* Parse digit string a pair at a time */
|
||||||
|
memset ( &pairs, 0, sizeof ( pairs ) );
|
||||||
data = contents.data;
|
data = contents.data;
|
||||||
remaining = contents.len;
|
remaining = contents.len;
|
||||||
for ( i = ( have_century ? 0 : 1 ) ; i < sizeof ( pairs.raw ) ; i++ ) {
|
for ( i = ( have_century ? 0 : 1 ) ; i < sizeof ( pairs.raw ) ; i++ ) {
|
||||||
if ( remaining < 2 ) {
|
if ( remaining < 2 ) {
|
||||||
|
/* Some certificates violate the X.509 RFC by
|
||||||
|
* omitting the "seconds" value.
|
||||||
|
*/
|
||||||
|
if ( i == ( sizeof ( pairs.raw ) - 1 ) )
|
||||||
|
break;
|
||||||
DBGC ( cursor, "ASN1 %p invalid time:\n", cursor );
|
DBGC ( cursor, "ASN1 %p invalid time:\n", cursor );
|
||||||
DBGC_HDA ( cursor, 0, cursor->data, cursor->len );
|
DBGC_HDA ( cursor, 0, cursor->data, cursor->len );
|
||||||
return -EINVAL_ASN1_TIME;
|
return -EINVAL_ASN1_TIME;
|
||||||
|
|
Loading…
Reference in New Issue