mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-25 17:45: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_INVALID_DATA -0x0068 /**< Data is invalid. (not used) */
|
||||
#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 */
|
||||
|
||||
/**
|
||||
|
@ -29,8 +29,6 @@
|
||||
|
||||
#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
|
||||
|
||||
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_printable_string( unsigned char **p, unsigned char *start,
|
||||
char *text );
|
||||
int asn1_write_ia5_string( unsigned char **p, unsigned char *start,
|
||||
char *text );
|
||||
|
||||
#endif /* POLARSSL_ASN1_WRITE_H */
|
||||
|
@ -215,4 +215,27 @@ int asn1_write_printable_string( unsigned char **p, unsigned char *start,
|
||||
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
|
||||
|
@ -116,9 +116,15 @@ int x509_write_name( unsigned char **p, unsigned char *start, char *oid,
|
||||
size_t oid_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
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user