Binary compatibility report for the PolarSSL library  between 0.14.3 and 1.0.0 versions on x86

Test Info


Library NamePolarSSL
Version #10.14.3
Version #21.0.0
CPU Typex86
GCC Version4.6.1

Test Results


Total Header Files26
Total Shared Libraries1
Total Symbols / Types218 / 141
VerdictIncompatible
(20.4%)

Problem Summary


SeverityCount
Added Symbols-81
Removed SymbolsHigh3
Problems with
Data Types
High1
Medium7
Low22
Problems with
Symbols
High2
Medium2
Low93
Problems with
Constants
Low85

Added Symbols (81)


aes.h, libpolarssl.so.1.0.0
aes_crypt_ctr ( struct aes_context* ctx, size_t length, size_t* nc_off, unsigned char* nonce_counter, unsigned char* stream_block, unsigned char const* input, unsigned char* output )

bignum.h, libpolarssl.so.1.0.0
mpi_fill_random struct mpi* X, size_t size, int(*f_rng)(void*), void* p_rng )
mpi_get_bit struct mpi* X, size_t pos )
mpi_set_bit struct mpi* X, size_t pos, unsigned char val )

camellia.h, libpolarssl.so.1.0.0
camellia_crypt_ctr ( struct camellia_context* ctx, size_t length, size_t* nc_off, unsigned char* nonce_counter, unsigned char* stream_block, unsigned char const* input, unsigned char* output )

certs.h, libpolarssl.so.1.0.0
test_dhm_params [data]

cipher.h, libpolarssl.so.1.0.0
cipher_finish ( struct cipher_context_t* ctx, unsigned char* output, size_t* olen )
cipher_free_ctx struct cipher_context_t* ctx )
cipher_info_from_string char const* cipher_name )
cipher_info_from_type enum cipher_type_t const cipher_type )
cipher_init_ctx ( struct cipher_context_t* ctx, struct cipher_info_t const* cipher_info )
cipher_list ( )
cipher_reset ( struct cipher_context_t* ctx, unsigned char const* iv )
cipher_self_test int verbose )
cipher_setkey ( struct cipher_context_t* ctx, unsigned char const* key, int key_length, enum operation_t const operation )
cipher_update ( struct cipher_context_t* ctx, unsigned char const* input, size_t ilen, unsigned char* output, size_t* olen )

cipher_wrap.h, libpolarssl.so.1.0.0
aes_128_cbc_info [data]
aes_128_cfb128_info [data]
aes_128_ctr_info [data]
aes_192_cbc_info [data]
aes_192_cfb128_info [data]
aes_192_ctr_info [data]
aes_256_cbc_info [data]
aes_256_cfb128_info [data]
aes_256_ctr_info [data]
camellia_128_cbc_info [data]
camellia_128_cfb128_info [data]
camellia_128_ctr_info [data]
camellia_192_cbc_info [data]
camellia_192_cfb128_info [data]
camellia_192_ctr_info [data]
camellia_256_cbc_info [data]
camellia_256_cfb128_info [data]
camellia_256_ctr_info [data]
des_cbc_info [data]
des_ede3_cbc_info [data]
des_ede_cbc_info [data]

des.h, libpolarssl.so.1.0.0
des_key_check_key_parity unsigned char const* key )
des_key_check_weak unsigned char const* key )
des_key_set_parity unsigned char* key )

error.h, libpolarssl.so.1.0.0
error_strerror int errnum, char* buffer, size_t buflen )

md.h, libpolarssl.so.1.0.0
md ( struct md_info_t const* md_info, unsigned char const* input, size_t ilen, unsigned char* output )
md_file ( struct md_info_t const* md_info, char const* path, unsigned char* output )
md_finish ( struct md_context_t* ctx, unsigned char* output )
md_free_ctx struct md_context_t* ctx )
md_hmac ( struct md_info_t const* md_info, unsigned char const* key, size_t keylen, unsigned char const* input, size_t ilen, unsigned char* output )
md_hmac_finish ( struct md_context_t* ctx, unsigned char* output )
md_hmac_reset struct md_context_t* ctx )
md_hmac_starts ( struct md_context_t* ctx, unsigned char const* key, size_t keylen )
md_hmac_update ( struct md_context_t* ctx, unsigned char const* input, size_t ilen )
md_info_from_string char const* md_name )
md_info_from_type enum md_type_t md_type )
md_init_ctx ( struct md_context_t* ctx, struct md_info_t const* md_info )
md_list ( )
md_starts struct md_context_t* ctx )
md_update ( struct md_context_t* ctx, unsigned char const* input, size_t ilen )

md_wrap.h, libpolarssl.so.1.0.0
md5_info [data]
sha1_info [data]
sha224_info [data]
sha256_info [data]
sha384_info [data]
sha512_info [data]

pem.h, libpolarssl.so.1.0.0
pem_free struct pem_context* ctx )
pem_init struct pem_context* ctx )
pem_read_buffer ( struct pem_context* ctx, char* header, char* footer, unsigned char const* data, unsigned char const* pwd, size_t pwdlen, size_t* use_len )

ssl.h, libpolarssl.so.1.0.0
ssl_default_ciphersuites [data]
ssl_get_ciphersuite ssl_context const* ssl )
ssl_get_ciphersuite_id char const* ciphersuite_name )
ssl_get_ciphersuite_name int const ciphersuite_id )
ssl_get_version ssl_context const* ssl )
ssl_set_ciphersuites ( ssl_context* ssl, int* ciphersuites )
ssl_set_dh_param_ctx ( ssl_context* ssl, struct dhm_context* dhm_ctx )
ssl_set_verify ( ssl_context* ssl, int(*f_vrfy)(void*, x509_cert*, int, int), void* p_vrfy )

x509.h, libpolarssl.so.1.0.0
x509_oid_get_description x509_buf* oid )
x509_oid_get_numeric_string char* buf, size_t size, x509_buf* oid )
x509parse_dhm ( struct dhm_context* dhm, unsigned char const* dhmin, size_t dhminlen )
x509parse_dhmfile ( struct dhm_context* dhm, char const* path )
x509parse_public_key ( struct rsa_context* rsa, unsigned char const* key, size_t keylen )
x509parse_public_keyfile ( struct rsa_context* rsa, char const* path )
x509parse_serial_gets char* buf, size_t size, x509_buf const* serial )

xtea.h, libpolarssl.so.1.0.0
xtea_crypt_cbc ( struct xtea_context* ctx, int mode, size_t length, unsigned char* iv, unsigned char* input, unsigned char* output )

to the top

Removed Symbols (3)


ssl.h, libpolarssl.so
ssl_default_ciphers [data]
ssl_get_cipher ssl_context const* ssl )
ssl_set_ciphers ( ssl_context* ssl, int* ciphers )

to the top

Problems with Data Types, High Severity (1)


ssl.h
[+] struct _ssl_context (1)

to the top

Problems with Symbols, High Severity (2)


rsa.h, libpolarssl.so
[+] rsa_pkcs1_sign ( struct rsa_context* ctx, int mode, int hash_id, int hashlen, unsigned char const* hash, unsigned char* sig ) (2)

to the top

Problems with Data Types, Medium Severity (7)


ssl.h
[+] struct _ssl_context (3)

x509.h
[+] struct _x509_cert (4)

to the top

Problems with Symbols, Medium Severity (2)


x509.h, libpolarssl.so
[+] x509parse_verify x509_cert* crt, x509_cert* trust_ca, x509_crl* ca_crl, char const* cn, int* flags ) (2)

to the top

Problems with Data Types, Low Severity (22)


bignum.h
[+] struct mpi (2)

dhm.h
[+] struct dhm_context (1)

rsa.h
[+] struct rsa_context (1)

ssl.h
[+] struct _ssl_context (14)
[+] struct _ssl_session (2)

x509.h
[+] struct _x509_buf (1)
[+] struct _x509_cert (1)

to the top

Problems with Symbols, Low Severity (93)


aes.h, libpolarssl.so
[+] aes_crypt_cbc ( struct aes_context* ctx, int mode, int length, unsigned char* iv, unsigned char const* input, unsigned char* output ) (1)
[+] aes_crypt_cfb128 ( struct aes_context* ctx, int mode, int length, int* iv_off, unsigned char* iv, unsigned char const* input, unsigned char* output ) (2)
[+] aes_setkey_dec ( struct aes_context* ctx, unsigned char const* key, int keysize ) (1)
[+] aes_setkey_enc ( struct aes_context* ctx, unsigned char const* key, int keysize ) (1)

arc4.h, libpolarssl.so
[+] arc4_crypt ( struct arc4_context* ctx, int length, unsigned char const* input, unsigned char* output ) (1)
[+] arc4_setup ( struct arc4_context* ctx, unsigned char const* key, int keylen ) (1)

base64.h, libpolarssl.so
[+] base64_decode ( unsigned char* dst, int* dlen, unsigned char const* src, int slen ) (2)
[+] base64_encode ( unsigned char* dst, int* dlen, unsigned char const* src, int slen ) (2)

bignum.h, libpolarssl.so
[+] mpi_add_int struct mpi* X, struct mpi const* A, int b ) (1)
[+] mpi_cmp_int ( struct mpi const* X, int z ) (1)
[+] mpi_div_int struct mpi* Q, struct mpi* R, struct mpi const* A, int b ) (1)
[+] mpi_gen_prime struct mpi* X, int nbits, int dh_flag, int(*f_rng)(void*), void* p_rng ) (1)
[+] mpi_grow struct mpi* X, int nblimbs ) (1)
[+] mpi_lsb struct mpi const* X ) (1)
[+] mpi_lset struct mpi* X, int z ) (1)
[+] mpi_mod_int t_int* r, struct mpi const* A, int b ) (2)
[+] mpi_msb struct mpi const* X ) (1)
[+] mpi_mul_int struct mpi* X, struct mpi const* A, t_int b ) (1)
[+] mpi_read_binary struct mpi* X, unsigned char const* buf, int buflen ) (1)
[+] mpi_shift_l struct mpi* X, int count ) (1)
[+] mpi_shift_r struct mpi* X, int count ) (1)
[+] mpi_size struct mpi const* X ) (1)
[+] mpi_sub_int struct mpi* X, struct mpi const* A, int b ) (1)
[+] mpi_write_binary ( struct mpi const* X, unsigned char* buf, int buflen ) (1)
[+] mpi_write_string ( struct mpi const* X, int radix, char* s, int* slen ) (1)

camellia.h, libpolarssl.so
[+] camellia_crypt_cbc ( struct camellia_context* ctx, int mode, int length, unsigned char* iv, unsigned char const* input, unsigned char* output ) (1)
[+] camellia_crypt_cfb128 ( struct camellia_context* ctx, int mode, int length, int* iv_off, unsigned char* iv, unsigned char const* input, unsigned char* output ) (2)
[+] camellia_setkey_dec ( struct camellia_context* ctx, unsigned char const* key, int keysize ) (1)
[+] camellia_setkey_enc ( struct camellia_context* ctx, unsigned char const* key, int keysize ) (1)

debug.h, libpolarssl.so
[+] debug_print_buf ( ssl_context const* ssl, int level, char const* file, int line, char const* text, unsigned char* buf, int len ) (1)

des.h, libpolarssl.so
[+] des3_crypt_cbc ( struct des3_context* ctx, int mode, int length, unsigned char* iv, unsigned char const* input, unsigned char* output ) (1)
[+] des3_set2key_dec ( struct des3_context* ctx, unsigned char const* key ) (1)
[+] des3_set2key_enc ( struct des3_context* ctx, unsigned char const* key ) (1)
[+] des3_set3key_dec ( struct des3_context* ctx, unsigned char const* key ) (1)
[+] des3_set3key_enc ( struct des3_context* ctx, unsigned char const* key ) (1)
[+] des_crypt_cbc ( struct des_context* ctx, int mode, int length, unsigned char* iv, unsigned char const* input, unsigned char* output ) (1)
[+] des_setkey_dec ( struct des_context* ctx, unsigned char const* key ) (1)
[+] des_setkey_enc ( struct des_context* ctx, unsigned char const* key ) (1)

dhm.h, libpolarssl.so
[+] dhm_calc_secret ( struct dhm_context* ctx, unsigned char* output, int* olen ) (1)
[+] dhm_make_params ( struct dhm_context* ctx, int x_size, unsigned char* output, int* olen, int(*f_rng)(void*), void* p_rng ) (1)
[+] dhm_make_public ( struct dhm_context* ctx, int s_size, unsigned char* output, int olen, int(*f_rng)(void*), void* p_rng ) (2)
[+] dhm_read_public ( struct dhm_context* ctx, unsigned char const* input, int ilen ) (1)

md5.h, libpolarssl.so
[+] md5 ( unsigned char const* input, int ilen, unsigned char* output ) (1)
[+] md5_hmac ( unsigned char const* key, int keylen, unsigned char const* input, int ilen, unsigned char* output ) (2)
[+] md5_hmac_starts ( struct md5_context* ctx, unsigned char const* key, int keylen ) (1)
[+] md5_hmac_update ( struct md5_context* ctx, unsigned char const* input, int ilen ) (1)
[+] md5_update ( struct md5_context* ctx, unsigned char const* input, int ilen ) (1)

net.h, libpolarssl.so
[+] net_recv void* ctx, unsigned char* buf, int len ) (1)
[+] net_send void* ctx, unsigned char* buf, int len ) (2)

padlock.h, libpolarssl.so
[+] padlock_xcryptcbc ( struct aes_context* ctx, int mode, int length, unsigned char* iv, unsigned char const* input, unsigned char* output ) (1)

rsa.h, libpolarssl.so
[+] rsa_gen_key ( struct rsa_context* ctx, int(*f_rng)(void*), void* p_rng, int nbits, int exponent ) (1)
[+] rsa_pkcs1_decrypt ( struct rsa_context* ctx, int mode, int* olen, unsigned char const* input, unsigned char* output, int output_max_len ) (2)
[+] rsa_pkcs1_encrypt ( struct rsa_context* ctx, int(*f_rng)(void*), void* p_rng, int mode, int ilen, unsigned char const* input, unsigned char* output ) (1)
[+] rsa_pkcs1_sign ( struct rsa_context* ctx, int mode, int hash_id, int hashlen, unsigned char const* hash, unsigned char* sig ) (1)
[+] rsa_pkcs1_verify ( struct rsa_context* ctx, int mode, int hash_id, int hashlen, unsigned char const* hash, unsigned char* sig ) (1)

sha1.h, libpolarssl.so
[+] sha1 ( unsigned char const* input, int ilen, unsigned char* output ) (1)
[+] sha1_hmac ( unsigned char const* key, int keylen, unsigned char const* input, int ilen, unsigned char* output ) (2)
[+] sha1_hmac_starts ( struct sha1_context* ctx, unsigned char const* key, int keylen ) (1)
[+] sha1_hmac_update ( struct sha1_context* ctx, unsigned char const* input, int ilen ) (1)
[+] sha1_update ( struct sha1_context* ctx, unsigned char const* input, int ilen ) (1)

sha2.h, libpolarssl.so
[+] sha2 ( unsigned char const* input, int ilen, unsigned char* output, int is224 ) (1)
[+] sha2_hmac ( unsigned char const* key, int keylen, unsigned char const* input, int ilen, unsigned char* output, int is224 ) (2)
[+] sha2_hmac_starts ( struct sha2_context* ctx, unsigned char const* key, int keylen, int is224 ) (1)
[+] sha2_hmac_update ( struct sha2_context* ctx, unsigned char const* input, int ilen ) (1)
[+] sha2_update ( struct sha2_context* ctx, unsigned char const* input, int ilen ) (1)

sha4.h, libpolarssl.so
[+] sha4 ( unsigned char const* input, int ilen, unsigned char* output, int is384 ) (1)
[+] sha4_hmac ( unsigned char const* key, int keylen, unsigned char const* input, int ilen, unsigned char* output, int is384 ) (2)
[+] sha4_hmac_starts ( struct sha4_context* ctx, unsigned char const* key, int keylen, int is384 ) (1)
[+] sha4_hmac_update ( struct sha4_context* ctx, unsigned char const* input, int ilen ) (1)
[+] sha4_update ( struct sha4_context* ctx, unsigned char const* input, int ilen ) (1)

ssl.h, libpolarssl.so
[+] ssl_fetch_input ( ssl_context* ssl, int nb_want ) (1)
[+] ssl_get_bytes_avail ssl_context const* ssl ) (1)
[+] ssl_read ( ssl_context* ssl, unsigned char* buf, int len ) (1)
[+] ssl_set_bio ( ssl_context* ssl, int(*f_recv)(void*, unsigned char*, int), void* p_recv, int(*f_send)(void*, unsigned char*, int), void* p_send ) (2)
[+] ssl_write ( ssl_context* ssl, unsigned char const* buf, int len ) (1)

timing.h, libpolarssl.so
[+] alarmed [data] (1)

x509.h, libpolarssl.so
[+] x509parse_crl x509_crl* chain, unsigned char const* buf, int buflen ) (1)
[+] x509parse_crt ( x509_cert* chain, unsigned char const* buf, int buflen ) (1)
[+] x509parse_key ( struct rsa_context* rsa, unsigned char const* key, int keylen, unsigned char const* pwd, int pwdlen ) (2)

to the top

Problems with Constants (85)


aes.h
[+] POLARSSL_ERR_AES_INVALID_INPUT_LENGTH
[+] POLARSSL_ERR_AES_INVALID_KEY_LENGTH

base64.h
[+] POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL
[+] POLARSSL_ERR_BASE64_INVALID_CHARACTER

bignum.h
[+] POLARSSL_ERR_MPI_BAD_INPUT_DATA
[+] POLARSSL_ERR_MPI_BUFFER_TOO_SMALL
[+] POLARSSL_ERR_MPI_DIVISION_BY_ZERO
[+] POLARSSL_ERR_MPI_FILE_IO_ERROR
[+] POLARSSL_ERR_MPI_INVALID_CHARACTER
[+] POLARSSL_ERR_MPI_NEGATIVE_VALUE
[+] POLARSSL_ERR_MPI_NOT_ACCEPTABLE

camellia.h
[+] POLARSSL_ERR_CAMELLIA_INVALID_INPUT_LENGTH
[+] POLARSSL_ERR_CAMELLIA_INVALID_KEY_LENGTH

des.h
[+] POLARSSL_ERR_DES_INVALID_INPUT_LENGTH

dhm.h
[+] POLARSSL_ERR_DHM_BAD_INPUT_DATA
[+] POLARSSL_ERR_DHM_CALC_SECRET_FAILED
[+] POLARSSL_ERR_DHM_MAKE_PARAMS_FAILED
[+] POLARSSL_ERR_DHM_MAKE_PUBLIC_FAILED
[+] POLARSSL_ERR_DHM_READ_PARAMS_FAILED
[+] POLARSSL_ERR_DHM_READ_PUBLIC_FAILED

net.h
[+] POLARSSL_ERR_NET_ACCEPT_FAILED
[+] POLARSSL_ERR_NET_BIND_FAILED
[+] POLARSSL_ERR_NET_CONN_RESET
[+] POLARSSL_ERR_NET_CONNECT_FAILED
[+] POLARSSL_ERR_NET_LISTEN_FAILED
[+] POLARSSL_ERR_NET_RECV_FAILED
[+] POLARSSL_ERR_NET_SEND_FAILED
[+] POLARSSL_ERR_NET_SOCKET_FAILED
[+] POLARSSL_ERR_NET_UNKNOWN_HOST

padlock.h
[+] POLARSSL_ERR_PADLOCK_DATA_MISALIGNED

rsa.h
[+] POLARSSL_ERR_RSA_BAD_INPUT_DATA
[+] POLARSSL_ERR_RSA_INVALID_PADDING
[+] POLARSSL_ERR_RSA_KEY_CHECK_FAILED
[+] POLARSSL_ERR_RSA_KEY_GEN_FAILED
[+] POLARSSL_ERR_RSA_OUTPUT_TOO_LARGE
[+] POLARSSL_ERR_RSA_PRIVATE_FAILED
[+] POLARSSL_ERR_RSA_PUBLIC_FAILED
[+] POLARSSL_ERR_RSA_RNG_FAILED
[+] POLARSSL_ERR_RSA_VERIFY_FAILED

ssl.h
[+] POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE
[+] POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST
[+] POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY
[+] POLARSSL_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC
[+] POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO
[+] POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE
[+] POLARSSL_ERR_SSL_BAD_HS_FINISHED
[+] POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO
[+] POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO_DONE
[+] POLARSSL_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE
[+] POLARSSL_ERR_SSL_BAD_INPUT_DATA
[+] POLARSSL_ERR_SSL_CA_CHAIN_REQUIRED
[+] POLARSSL_ERR_SSL_CERTIFICATE_REQUIRED
[+] POLARSSL_ERR_SSL_CERTIFICATE_TOO_LARGE
[+] POLARSSL_ERR_SSL_FATAL_ALERT_MESSAGE
[+] POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE
[+] POLARSSL_ERR_SSL_INVALID_MAC
[+] POLARSSL_ERR_SSL_INVALID_RECORD
[+] POLARSSL_ERR_SSL_NO_CIPHER_CHOSEN
[+] POLARSSL_ERR_SSL_NO_CLIENT_CERTIFICATE
[+] POLARSSL_ERR_SSL_NO_SESSION_FOUND
[+] POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY
[+] POLARSSL_ERR_SSL_PEER_VERIFY_FAILED
[+] POLARSSL_ERR_SSL_PRIVATE_KEY_REQUIRED
[+] POLARSSL_ERR_SSL_UNEXPECTED_MESSAGE
[+] POLARSSL_ERR_SSL_UNKNOWN_CIPHER

x509.h
[+] POLARSSL_ERR_ASN1_INVALID_DATA
[+] POLARSSL_ERR_ASN1_INVALID_LENGTH
[+] POLARSSL_ERR_ASN1_LENGTH_MISMATCH
[+] POLARSSL_ERR_ASN1_OUT_OF_DATA
[+] POLARSSL_ERR_ASN1_UNEXPECTED_TAG
[+] POLARSSL_ERR_X509_CERT_INVALID_ALG
[+] POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS
[+] POLARSSL_ERR_X509_CERT_INVALID_FORMAT
[+] POLARSSL_ERR_X509_CERT_INVALID_NAME
[+] POLARSSL_ERR_X509_CERT_INVALID_PEM
[+] POLARSSL_ERR_X509_CERT_INVALID_PUBKEY
[+] POLARSSL_ERR_X509_CERT_INVALID_SERIAL
[+] POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE
[+] POLARSSL_ERR_X509_CERT_SIG_MISMATCH
[+] POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG
[+] POLARSSL_ERR_X509_CERT_VERIFY_FAILED
[+] POLARSSL_ERR_X509_FEATURE_UNAVAILABLE
[+] POLARSSL_ERR_X509_KEY_INVALID_FORMAT
[+] POLARSSL_ERR_X509_POINT_ERROR
[+] POLARSSL_ERR_X509_VALUE_TO_LENGTH

to the top

Header Files (26)


aes.h
arc4.h
base64.h
bignum.h
bn_mul.h
camellia.h
certs.h
config.h
debug.h
des.h
dhm.h
havege.h
md2.h
md4.h
md5.h
net.h
padlock.h
rsa.h
sha1.h
sha2.h
sha4.h
ssl.h
timing.h
version.h
x509.h
xtea.h

to the top

Shared Libraries (1)


libpolarssl.so

to the top




Generated on Tue Dec 25 17:25:51 2012 for PolarSSL by ABI Compliance Checker 1.98.7  
A tool for checking backward compatibility of a C/C++ library API