Renamed X509 / X509WRITE error codes to generic (non-cert-specific)
diff --git a/library/error.c b/library/error.c
index ced87c5..4323e72 100644
--- a/library/error.c
+++ b/library/error.c
@@ -410,46 +410,40 @@
 #if defined(POLARSSL_X509_USE_C) || defined(POLARSSL_X509_CREATE_C)
         if( use_ret == -(POLARSSL_ERR_X509_FEATURE_UNAVAILABLE) )
             snprintf( buf, buflen, "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_PEM) )
-            snprintf( buf, buflen, "X509 - The PEM-encoded certificate contains invalid elements, e.g. invalid character" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_FORMAT) )
-            snprintf( buf, buflen, "X509 - The certificate format is invalid, e.g. different type expected" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_VERSION) )
-            snprintf( buf, buflen, "X509 - The certificate version element is invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_SERIAL) )
+        if( use_ret == -(POLARSSL_ERR_X509_UNKNOWN_OID) )
+            snprintf( buf, buflen, "X509 - Requested OID is unknown" );
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_FORMAT) )
+            snprintf( buf, buflen, "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" );
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_VERSION) )
+            snprintf( buf, buflen, "X509 - The CRT/CRL/CSR version element is invalid" );
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_SERIAL) )
             snprintf( buf, buflen, "X509 - The serial tag or value is invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_ALG) )
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_ALG) )
             snprintf( buf, buflen, "X509 - The algorithm tag or value is invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_NAME) )
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_NAME) )
             snprintf( buf, buflen, "X509 - The name tag or value is invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_DATE) )
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_DATE) )
             snprintf( buf, buflen, "X509 - The date tag or value is invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE) )
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_SIGNATURE) )
             snprintf( buf, buflen, "X509 - The signature tag or value invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS) )
+        if( use_ret == -(POLARSSL_ERR_X509_INVALID_EXTENSIONS) )
             snprintf( buf, buflen, "X509 - The extension tag or value is invalid" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION) )
-            snprintf( buf, buflen, "X509 - Certificate or CRL has an unsupported version number" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG) )
+        if( use_ret == -(POLARSSL_ERR_X509_UNKNOWN_VERSION) )
+            snprintf( buf, buflen, "X509 - CRT/CRL/CSR has an unsupported version number" );
+        if( use_ret == -(POLARSSL_ERR_X509_UNKNOWN_SIG_ALG) )
             snprintf( buf, buflen, "X509 - Signature algorithm (oid) is unsupported" );
-        if( use_ret == -(POLARSSL_ERR_X509_CERT_SIG_MISMATCH) )
-            snprintf( buf, buflen, "X509 - Certificate signature algorithms do not match. (see \\c ::x509_cert sig_oid)" );
+        if( use_ret == -(POLARSSL_ERR_X509_SIG_MISMATCH) )
+            snprintf( buf, buflen, "X509 - Signature algorithms do not match. (see \\c ::x509_cert sig_oid)" );
         if( use_ret == -(POLARSSL_ERR_X509_CERT_VERIFY_FAILED) )
             snprintf( buf, buflen, "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" );
         if( use_ret == -(POLARSSL_ERR_X509_CERT_UNKNOWN_FORMAT) )
             snprintf( buf, buflen, "X509 - Format not recognized as DER or PEM" );
-        if( use_ret == -(POLARSSL_ERR_X509_INVALID_INPUT) )
+        if( use_ret == -(POLARSSL_ERR_X509_BAD_INPUT_DATA) )
             snprintf( buf, buflen, "X509 - Input invalid" );
         if( use_ret == -(POLARSSL_ERR_X509_MALLOC_FAILED) )
             snprintf( buf, buflen, "X509 - Allocation of memory failed" );
         if( use_ret == -(POLARSSL_ERR_X509_FILE_IO_ERROR) )
             snprintf( buf, buflen, "X509 - Read/write of file failed" );
-        if( use_ret == -(POLARSSL_ERR_X509WRITE_UNKNOWN_OID) )
-            snprintf( buf, buflen, "X509 - Requested OID is unknown" );
-        if( use_ret == -(POLARSSL_ERR_X509WRITE_BAD_INPUT_DATA) )
-            snprintf( buf, buflen, "X509 - Failed to allocate memory" );
-        if( use_ret == -(POLARSSL_ERR_X509WRITE_MALLOC_FAILED) )
-            snprintf( buf, buflen, "X509 - Failed to allocate memory" );
 #endif /* POLARSSL_X509_USE,X509_CREATE_C */
 
         if( strlen( buf ) == 0 )
diff --git a/library/x509.c b/library/x509.c
index bdcc951..47b1843 100644
--- a/library/x509.c
+++ b/library/x509.c
@@ -78,18 +78,18 @@
     int ret;
 
     if( ( end - *p ) < 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_SERIAL +
+        return( POLARSSL_ERR_X509_INVALID_SERIAL +
                 POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
     if( **p != ( ASN1_CONTEXT_SPECIFIC | ASN1_PRIMITIVE | 2 ) &&
         **p !=   ASN1_INTEGER )
-        return( POLARSSL_ERR_X509_CERT_INVALID_SERIAL +
+        return( POLARSSL_ERR_X509_INVALID_SERIAL +
                 POLARSSL_ERR_ASN1_UNEXPECTED_TAG );
 
     serial->tag = *(*p)++;
 
     if( ( ret = asn1_get_len( p, end, &serial->len ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_SERIAL + ret );
+        return( POLARSSL_ERR_X509_INVALID_SERIAL + ret );
 
     serial->p = *p;
     *p += serial->len;
@@ -109,7 +109,7 @@
     int ret;
 
     if( ( ret = asn1_get_alg_null( p, end, alg ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_ALG + ret );
+        return( POLARSSL_ERR_X509_INVALID_ALG + ret );
 
     return( 0 );
 }
@@ -134,36 +134,36 @@
 
     if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME + ret );
+        return( POLARSSL_ERR_X509_INVALID_NAME + ret );
 
     if( ( end - *p ) < 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME +
+        return( POLARSSL_ERR_X509_INVALID_NAME +
                 POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
     oid = &cur->oid;
     oid->tag = **p;
 
     if( ( ret = asn1_get_tag( p, end, &oid->len, ASN1_OID ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME + ret );
+        return( POLARSSL_ERR_X509_INVALID_NAME + ret );
 
     oid->p = *p;
     *p += oid->len;
 
     if( ( end - *p ) < 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME +
+        return( POLARSSL_ERR_X509_INVALID_NAME +
                 POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
     if( **p != ASN1_BMP_STRING && **p != ASN1_UTF8_STRING      &&
         **p != ASN1_T61_STRING && **p != ASN1_PRINTABLE_STRING &&
         **p != ASN1_IA5_STRING && **p != ASN1_UNIVERSAL_STRING )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME +
+        return( POLARSSL_ERR_X509_INVALID_NAME +
                 POLARSSL_ERR_ASN1_UNEXPECTED_TAG );
 
     val = &cur->val;
     val->tag = *(*p)++;
 
     if( ( ret = asn1_get_len( p, end, &val->len ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME + ret );
+        return( POLARSSL_ERR_X509_INVALID_NAME + ret );
 
     val->p = *p;
     *p += val->len;
@@ -195,7 +195,7 @@
 
     if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SET ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_NAME + ret );
+        return( POLARSSL_ERR_X509_INVALID_NAME + ret );
 
     end2 = end;
     end  = *p + len;
@@ -252,7 +252,7 @@
     unsigned char tag;
 
     if( ( end - *p ) < 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_DATE +
+        return( POLARSSL_ERR_X509_INVALID_DATE +
                 POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
     tag = **p;
@@ -261,9 +261,9 @@
     {
         (*p)++;
         ret = asn1_get_len( p, end, &len );
-        
+
         if( ret != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_DATE + ret );
+            return( POLARSSL_ERR_X509_INVALID_DATE + ret );
 
         memset( date,  0, sizeof( date ) );
         memcpy( date, *p, ( len < sizeof( date ) - 1 ) ?
@@ -272,7 +272,7 @@
         if( sscanf( date, "%2d%2d%2d%2d%2d%2d",
                     &time->year, &time->mon, &time->day,
                     &time->hour, &time->min, &time->sec ) < 5 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_DATE );
+            return( POLARSSL_ERR_X509_INVALID_DATE );
 
         time->year +=  100 * ( time->year < 50 );
         time->year += 1900;
@@ -285,9 +285,9 @@
     {
         (*p)++;
         ret = asn1_get_len( p, end, &len );
-        
+
         if( ret != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_DATE + ret );
+            return( POLARSSL_ERR_X509_INVALID_DATE + ret );
 
         memset( date,  0, sizeof( date ) );
         memcpy( date, *p, ( len < sizeof( date ) - 1 ) ?
@@ -296,14 +296,15 @@
         if( sscanf( date, "%4d%2d%2d%2d%2d%2d",
                     &time->year, &time->mon, &time->day,
                     &time->hour, &time->min, &time->sec ) < 5 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_DATE );
+            return( POLARSSL_ERR_X509_INVALID_DATE );
 
         *p += len;
 
         return( 0 );
     }
     else
-        return( POLARSSL_ERR_X509_CERT_INVALID_DATE + POLARSSL_ERR_ASN1_UNEXPECTED_TAG );
+        return( POLARSSL_ERR_X509_INVALID_DATE +
+                POLARSSL_ERR_ASN1_UNEXPECTED_TAG );
 }
 
 int x509_get_sig( unsigned char **p, const unsigned char *end, x509_buf *sig )
@@ -312,13 +313,13 @@
     size_t len;
 
     if( ( end - *p ) < 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE +
+        return( POLARSSL_ERR_X509_INVALID_SIGNATURE +
                 POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
     sig->tag = **p;
 
     if( ( ret = asn1_get_bitstring_null( p, end, &len ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE + ret );
+        return( POLARSSL_ERR_X509_INVALID_SIGNATURE + ret );
 
     sig->len = len;
     sig->p = *p;
@@ -334,7 +335,7 @@
     int ret = oid_get_sig_alg( sig_oid, md_alg, pk_alg );
 
     if( ret != 0 )
-        return( POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG + ret );
+        return( POLARSSL_ERR_X509_UNKNOWN_SIG_ALG + ret );
 
     return( 0 );
 }
@@ -371,10 +372,10 @@
      */
     if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     if( end != *p + len )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
diff --git a/library/x509_create.c b/library/x509_create.c
index 6991161..b59abbf 100644
--- a/library/x509_create.c
+++ b/library/x509_create.c
@@ -63,7 +63,7 @@
                 oid = OID_AT_STATE;
             else
             {
-                ret = POLARSSL_ERR_X509WRITE_UNKNOWN_OID;
+                ret = POLARSSL_ERR_X509_UNKNOWN_OID;
                 goto exit;
             }
 
@@ -77,7 +77,7 @@
                                                (unsigned char *) s,
                                                c - s ) ) == NULL )
             {
-                return( POLARSSL_ERR_X509WRITE_MALLOC_FAILED );
+                return( POLARSSL_ERR_X509_MALLOC_FAILED );
             }
 
             while( c < end && *(c + 1) == ' ' )
@@ -105,7 +105,7 @@
     if( ( cur = asn1_store_named_data( head, oid, oid_len,
                                        NULL, val_len + 1 ) ) == NULL )
     {
-        return( POLARSSL_ERR_X509WRITE_MALLOC_FAILED );
+        return( POLARSSL_ERR_X509_MALLOC_FAILED );
     }
 
     cur->val.p[0] = critical;
diff --git a/library/x509_crl.c b/library/x509_crl.c
index 3f1e175..aa9caea 100644
--- a/library/x509_crl.c
+++ b/library/x509_crl.c
@@ -80,7 +80,7 @@
             return( 0 );
         }
 
-        return( POLARSSL_ERR_X509_CERT_INVALID_VERSION + ret );
+        return( POLARSSL_ERR_X509_INVALID_VERSION + ret );
     }
 
     return( 0 );
@@ -109,13 +109,13 @@
     {
         if( ( ret = asn1_get_tag( p, end, &len,
                 ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         *p += len;
     }
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
@@ -150,26 +150,26 @@
             ext->p = NULL;
             return( 0 );
         }
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
     }
 
 	end = *p + ext->len;
 
     if( end != *p + ext->len )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     while( *p < end )
     {
         if( ( ret = asn1_get_tag( p, end, &len,
                 ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         *p += len;
     }
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
@@ -260,7 +260,7 @@
      * Check for valid input
      */
     if( crl == NULL || buf == NULL )
-        return( POLARSSL_ERR_X509_INVALID_INPUT );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
 
     while( crl->version != 0 && crl->next != NULL )
         crl = crl->next;
@@ -340,13 +340,13 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT );
     }
 
     if( len != (size_t) ( end - p ) )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
 
@@ -359,7 +359,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     end = p + len;
@@ -383,14 +383,14 @@
     if( crl->version > 2 )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION );
+        return( POLARSSL_ERR_X509_UNKNOWN_VERSION );
     }
 
     if( ( ret = x509_get_sig_alg( &crl->sig_oid1, &crl->sig_md,
                                   &crl->sig_pk ) ) != 0 )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG );
+        return( POLARSSL_ERR_X509_UNKNOWN_SIG_ALG );
     }
 
     /*
@@ -402,7 +402,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     if( ( ret = x509_get_name( &p, p + len, &crl->issuer ) ) != 0 )
@@ -425,9 +425,9 @@
 
     if( ( ret = x509_get_time( &p, end, &crl->next_update ) ) != 0 )
     {
-        if ( ret != ( POLARSSL_ERR_X509_CERT_INVALID_DATE +
+        if ( ret != ( POLARSSL_ERR_X509_INVALID_DATE +
                         POLARSSL_ERR_ASN1_UNEXPECTED_TAG ) &&
-             ret != ( POLARSSL_ERR_X509_CERT_INVALID_DATE +
+             ret != ( POLARSSL_ERR_X509_INVALID_DATE +
                         POLARSSL_ERR_ASN1_OUT_OF_DATA ) )
         {
             x509_crl_free( crl );
@@ -467,7 +467,7 @@
     if( p != end )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
 
@@ -487,7 +487,7 @@
         memcmp( crl->sig_oid1.p, crl->sig_oid2.p, crl->sig_oid1.len ) != 0 )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_SIG_MISMATCH );
+        return( POLARSSL_ERR_X509_SIG_MISMATCH );
     }
 
     if( ( ret = x509_get_sig( &p, end, &crl->sig ) ) != 0 )
@@ -499,7 +499,7 @@
     if( p != end )
     {
         x509_crl_free( crl );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
 
diff --git a/library/x509_crt.c b/library/x509_crt.c
index 4808b81..609463a 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -93,10 +93,10 @@
     end = *p + len;
 
     if( ( ret = asn1_get_int( p, end, ver ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_VERSION + ret );
+        return( POLARSSL_ERR_X509_INVALID_VERSION + ret );
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_VERSION +
+        return( POLARSSL_ERR_X509_INVALID_VERSION +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
@@ -117,7 +117,7 @@
 
     if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_DATE + ret );
+        return( POLARSSL_ERR_X509_INVALID_DATE + ret );
 
     end = *p + len;
 
@@ -128,7 +128,7 @@
         return( ret );
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_DATE +
+        return( POLARSSL_ERR_X509_INVALID_DATE +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
@@ -181,7 +181,7 @@
 
     if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     if( *p == end )
         return 0;
@@ -192,7 +192,7 @@
             ret = asn1_get_int( p, end, ca_istrue );
 
         if( ret != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         if( *ca_istrue != 0 )
             *ca_istrue = 1;
@@ -202,10 +202,10 @@
         return 0;
 
     if( ( ret = asn1_get_int( p, end, max_pathlen ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     (*max_pathlen)++;
@@ -221,10 +221,10 @@
     x509_bitstring bs = { 0, 0, NULL };
 
     if( ( ret = asn1_get_bitstring( p, end, &bs ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     if( bs.len != 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_INVALID_LENGTH );
 
     /* Get actual bitstring */
@@ -240,10 +240,10 @@
     x509_bitstring bs = { 0, 0, NULL };
 
     if( ( ret = asn1_get_bitstring( p, end, &bs ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     if( bs.len < 1 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_INVALID_LENGTH );
 
     /* Get actual bitstring */
@@ -263,11 +263,11 @@
     int ret;
 
     if( ( ret = asn1_get_sequence_of( p, end, ext_key_usage, ASN1_OID ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     /* Sequence length must be >= 1 */
     if( ext_key_usage->buf.p == NULL )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_INVALID_LENGTH );
 
     return 0;
@@ -312,25 +312,25 @@
     /* Get main sequence tag */
     if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
     if( *p + len != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     while( *p < end )
     {
         if( ( end - *p ) < 1 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                     POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
         tag = **p;
         (*p)++;
         if( ( ret = asn1_get_len( p, end, &tag_len ) ) != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         if( ( tag & ASN1_CONTEXT_SPECIFIC ) != ASN1_CONTEXT_SPECIFIC )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                     POLARSSL_ERR_ASN1_UNEXPECTED_TAG );
 
         if( tag != ( ASN1_CONTEXT_SPECIFIC | 2 ) )
@@ -352,7 +352,7 @@
                  sizeof( asn1_sequence ) );
 
             if( cur->next == NULL )
-                return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+                return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                         POLARSSL_ERR_ASN1_MALLOC_FAILED );
 
             memset( cur->next, 0, sizeof( asn1_sequence ) );
@@ -364,7 +364,7 @@
     cur->next = NULL;
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
@@ -407,7 +407,7 @@
 
         if( ( ret = asn1_get_tag( p, end, &len,
                 ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         end_ext_data = *p + len;
 
@@ -415,29 +415,29 @@
         extn_oid.tag = **p;
 
         if( ( ret = asn1_get_tag( p, end, &extn_oid.len, ASN1_OID ) ) != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         extn_oid.p = *p;
         *p += extn_oid.len;
 
         if( ( end - *p ) < 1 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                     POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
         /* Get optional critical */
         if( ( ret = asn1_get_bool( p, end_ext_data, &is_critical ) ) != 0 &&
             ( ret != POLARSSL_ERR_ASN1_UNEXPECTED_TAG ) )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         /* Data should be octet string type */
         if( ( ret = asn1_get_tag( p, end_ext_data, &len,
                 ASN1_OCTET_STRING ) ) != 0 )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret );
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS + ret );
 
         end_ext_octet = *p + len;
 
         if( end_ext_octet != end_ext_data )
-            return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+            return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                     POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
         /*
@@ -454,7 +454,7 @@
             if( is_critical )
             {
                 /* Data is marked as critical: fail */
-                return ( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+                return ( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                         POLARSSL_ERR_ASN1_UNEXPECTED_TAG );
             }
 #endif
@@ -506,7 +506,7 @@
     }
 
     if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS +
+        return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     return( 0 );
@@ -526,7 +526,7 @@
      * Check for valid input
      */
     if( crt == NULL || buf == NULL )
-        return( POLARSSL_ERR_X509_INVALID_INPUT );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
 
     p = (unsigned char *) polarssl_malloc( len = buflen );
 
@@ -551,13 +551,13 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT );
     }
 
     if( len > (size_t) ( end - p ) )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
     crt_end = p + len;
@@ -571,7 +571,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     end = p + len;
@@ -597,7 +597,7 @@
     if( crt->version > 3 )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION );
+        return( POLARSSL_ERR_X509_UNKNOWN_VERSION );
     }
 
     if( ( ret = x509_get_sig_alg( &crt->sig_oid1, &crt->sig_md,
@@ -616,7 +616,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     if( ( ret = x509_get_name( &p, p + len, &crt->issuer ) ) != 0 )
@@ -649,7 +649,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     if( len && ( ret = x509_get_name( &p, p + len, &crt->subject ) ) != 0 )
@@ -710,7 +710,7 @@
     if( p != end )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
 
@@ -733,7 +733,7 @@
         memcmp( crt->sig_oid1.p, crt->sig_oid2.p, crt->sig_oid1.len ) != 0 )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_SIG_MISMATCH );
+        return( POLARSSL_ERR_X509_SIG_MISMATCH );
     }
 
     if( ( ret = x509_get_sig( &p, end, &crt->sig ) ) != 0 )
@@ -745,7 +745,7 @@
     if( p != end )
     {
         x509_crt_free( crt );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
 
@@ -765,7 +765,7 @@
      * Check for valid input
      */
     if( crt == NULL || buf == NULL )
-        return( POLARSSL_ERR_X509_INVALID_INPUT );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
 
     while( crt->version != 0 && crt->next != NULL )
     {
@@ -814,7 +814,7 @@
      * Check for valid input
      */
     if( chain == NULL || buf == NULL )
-        return( POLARSSL_ERR_X509_INVALID_INPUT );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
 
     /*
      * Determine buffer content. Buffer contains either one DER certificate or
diff --git a/library/x509_crt_write.c b/library/x509_crt_write.c
index 577097d..a735170 100644
--- a/library/x509_crt_write.c
+++ b/library/x509_crt_write.c
@@ -102,7 +102,7 @@
     if( strlen(not_before) != X509_RFC5280_UTC_TIME_LEN - 1 ||
         strlen(not_after)  != X509_RFC5280_UTC_TIME_LEN - 1 )
     {
-        return( POLARSSL_ERR_X509WRITE_BAD_INPUT_DATA );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
     }
     strncpy( ctx->not_before, not_before, X509_RFC5280_UTC_TIME_LEN );
     strncpy( ctx->not_after , not_after , X509_RFC5280_UTC_TIME_LEN );
@@ -132,7 +132,7 @@
     memset( buf, 0, sizeof(buf) );
 
     if( is_ca && max_pathlen > 127 )
-        return( POLARSSL_ERR_X509WRITE_BAD_INPUT_DATA );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
 
     if( is_ca )
     {
diff --git a/library/x509_csr.c b/library/x509_csr.c
index aeddeb5..200d445 100644
--- a/library/x509_csr.c
+++ b/library/x509_csr.c
@@ -78,7 +78,7 @@
             return( 0 );
         }
 
-        return( POLARSSL_ERR_X509_CERT_INVALID_VERSION + ret );
+        return( POLARSSL_ERR_X509_INVALID_VERSION + ret );
     }
 
     return( 0 );
@@ -101,7 +101,7 @@
      * Check for valid input
      */
     if( csr == NULL || buf == NULL )
-        return( POLARSSL_ERR_X509_INVALID_INPUT );
+        return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
 
     memset( csr, 0, sizeof( x509_csr ) );
 
@@ -164,13 +164,13 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT );
     }
 
     if( len != (size_t) ( end - p ) )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }
 
@@ -183,7 +183,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     end = p + len;
@@ -203,7 +203,7 @@
     if( csr->version != 1 )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION );
+        return( POLARSSL_ERR_X509_UNKNOWN_VERSION );
     }
 
     /*
@@ -215,7 +215,7 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
 
     if( ( ret = x509_get_name( &p, p + len, &csr->subject ) ) != 0 )
@@ -242,7 +242,7 @@
             ASN1_CONSTRUCTED | ASN1_CONTEXT_SPECIFIC ) ) != 0 )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT + ret );
+        return( POLARSSL_ERR_X509_INVALID_FORMAT + ret );
     }
     // TODO Parse Attributes / extension requests
 
@@ -264,7 +264,7 @@
                                   &csr->sig_pk ) ) != 0 )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG );
+        return( POLARSSL_ERR_X509_UNKNOWN_SIG_ALG );
     }
 
     if( ( ret = x509_get_sig( &p, end, &csr->sig ) ) != 0 )
@@ -276,7 +276,7 @@
     if( p != end )
     {
         x509_csr_free( csr );
-        return( POLARSSL_ERR_X509_CERT_INVALID_FORMAT +
+        return( POLARSSL_ERR_X509_INVALID_FORMAT +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
     }