mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-25 17:35:37 +01:00
- Certificate Requests written now have the Email address written in IA5String
This commit is contained in:
parent
bdb912db69
commit
058881547f
@ -53,6 +53,8 @@
|
|||||||
#define POLARSSL_ERR_ASN1_LENGTH_MISMATCH -0x0066 /**< Actual length differs from expected length. */
|
#define POLARSSL_ERR_ASN1_LENGTH_MISMATCH -0x0066 /**< Actual length differs from expected length. */
|
||||||
#define POLARSSL_ERR_ASN1_INVALID_DATA -0x0068 /**< Data is invalid. (not used) */
|
#define POLARSSL_ERR_ASN1_INVALID_DATA -0x0068 /**< Data is invalid. (not used) */
|
||||||
#define POLARSSL_ERR_ASN1_MALLOC_FAILED -0x006A /**< Memory allocation failed */
|
#define POLARSSL_ERR_ASN1_MALLOC_FAILED -0x006A /**< Memory allocation failed */
|
||||||
|
#define POLARSSL_ERR_ASN1_BUF_TOO_SMALL -0x006C /**< Buffer too small when writing ASN.1 data structure. */
|
||||||
|
|
||||||
/* \} name */
|
/* \} name */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
|
|
||||||
#include "asn1.h"
|
#include "asn1.h"
|
||||||
|
|
||||||
#define POLARSSL_ERR_ASN1_BUF_TOO_SMALL -0x006C /**< Buffer too small when writing ASN.1 data structure. */
|
|
||||||
|
|
||||||
#define ASN1_CHK_ADD(g, f) if( ( ret = f ) < 0 ) return( ret ); else g += ret
|
#define ASN1_CHK_ADD(g, f) if( ( ret = f ) < 0 ) return( ret ); else g += ret
|
||||||
|
|
||||||
int asn1_write_len( unsigned char **p, unsigned char *start, size_t len );
|
int asn1_write_len( unsigned char **p, unsigned char *start, size_t len );
|
||||||
@ -42,5 +40,7 @@ int asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start, ch
|
|||||||
int asn1_write_int( unsigned char **p, unsigned char *start, int val );
|
int asn1_write_int( unsigned char **p, unsigned char *start, int val );
|
||||||
int asn1_write_printable_string( unsigned char **p, unsigned char *start,
|
int asn1_write_printable_string( unsigned char **p, unsigned char *start,
|
||||||
char *text );
|
char *text );
|
||||||
|
int asn1_write_ia5_string( unsigned char **p, unsigned char *start,
|
||||||
|
char *text );
|
||||||
|
|
||||||
#endif /* POLARSSL_ASN1_WRITE_H */
|
#endif /* POLARSSL_ASN1_WRITE_H */
|
||||||
|
@ -215,4 +215,27 @@ int asn1_write_printable_string( unsigned char **p, unsigned char *start,
|
|||||||
return( len );
|
return( len );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int asn1_write_ia5_string( unsigned char **p, unsigned char *start,
|
||||||
|
char *text )
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
size_t len = 0;
|
||||||
|
|
||||||
|
// Write string
|
||||||
|
//
|
||||||
|
len = strlen( text );
|
||||||
|
|
||||||
|
if( *p - start < (int) len )
|
||||||
|
return( POLARSSL_ERR_ASN1_BUF_TOO_SMALL );
|
||||||
|
|
||||||
|
(*p) -= len;
|
||||||
|
memcpy( *p, text, len );
|
||||||
|
|
||||||
|
ASN1_CHK_ADD( len, asn1_write_len( p, start, len ) );
|
||||||
|
ASN1_CHK_ADD( len, asn1_write_tag( p, start, ASN1_IA5_STRING ) );
|
||||||
|
|
||||||
|
return( len );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -116,9 +116,15 @@ int x509_write_name( unsigned char **p, unsigned char *start, char *oid,
|
|||||||
size_t oid_len = 0;
|
size_t oid_len = 0;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
// Write PrintableString
|
// Write PrintableString for all except OID_PKCS9_EMAIL
|
||||||
//
|
//
|
||||||
ASN1_CHK_ADD( string_len, asn1_write_printable_string( p, start, name ) );
|
if( OID_SIZE( OID_PKCS9_EMAIL ) == strlen( oid ) &&
|
||||||
|
memcmp( oid, OID_PKCS9_EMAIL, strlen( oid ) ) == 0 )
|
||||||
|
{
|
||||||
|
ASN1_CHK_ADD( string_len, asn1_write_ia5_string( p, start, name ) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ASN1_CHK_ADD( string_len, asn1_write_printable_string( p, start, name ) );
|
||||||
|
|
||||||
// Write OID
|
// Write OID
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user