int pk_write_pubkey( unsigned char **p, unsigned char *start, const pk_context *key ) { int ret; size_t len = 0; #if defined(POLARSSL_RSA_C) if( pk_get_type( key ) == POLARSSL_PK_RSA ) ASN1_CHK_ADD( len, pk_write_rsa_pubkey( p, start, pk_rsa( *key ) ) ); else #endif #if defined(POLARSSL_ECP_C) if( pk_get_type( key ) == POLARSSL_PK_ECKEY ) ASN1_CHK_ADD( len, pk_write_ec_pubkey( p, start, pk_ec( *key ) ) ); else #endif #if defined(__TTS__) if( pk_get_type( key ) == OUR_PK_TTS ) { ASN1_CHK_ADD( len, pk_write_tts_pubkey( p, start, pk_tts( *key ) ) ); } else #endif #if defined(__TTS_2__) if( pk_get_type( key ) == OUR_PK_TTS2 ) { ASN1_CHK_ADD( len, pk_write_tts2_pubkey( p, start, pk_tts2( *key ) ) ); } else #endif #if defined(__RAINBOW__) if( pk_get_type( key ) == OUR_PK_RAINBOW ) { ASN1_CHK_ADD( len, pk_write_rb_pubkey( p, start, pk_rainbow( *key ) ) ); } else #endif #if defined(__RAINBOW_2__) if( pk_get_type( key ) == OUR_PK_RAINBOW2 ) { ASN1_CHK_ADD( len, pk_write_rb2_pubkey( p, start, pk_rainbow2( *key ) ) ); } else #endif return( POLARSSL_ERR_PK_FEATURE_UNAVAILABLE ); return( (int) len ); }
int pk_write_pubkey( unsigned char **p, unsigned char *start, const pk_context *key ) { int ret; size_t len = 0; #if defined(POLARSSL_RSA_C) if( pk_get_type( key ) == POLARSSL_PK_RSA ) ASN1_CHK_ADD( len, pk_write_rsa_pubkey( p, start, pk_rsa( *key ) ) ); else #endif #if defined(POLARSSL_ECP_C) if( pk_get_type( key ) == POLARSSL_PK_ECKEY ) ASN1_CHK_ADD( len, pk_write_ec_pubkey( p, start, pk_ec( *key ) ) ); else #endif return( POLARSSL_ERR_PK_FEATURE_UNAVAILABLE ); return( (int) len ); }
int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start, const mbedtls_pk_context *key ) { int ret; size_t len = 0; #if defined(MBEDTLS_RSA_C) if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_RSA ) MBEDTLS_ASN1_CHK_ADD( len, pk_write_rsa_pubkey( p, start, mbedtls_pk_rsa( *key ) ) ); else #endif #if defined(MBEDTLS_ECP_C) if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_ECKEY ) MBEDTLS_ASN1_CHK_ADD( len, pk_write_ec_pubkey( p, start, mbedtls_pk_ec( *key ) ) ); else #endif return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); return( (int) len ); }