Binary compatibility report for the MatrixSSL library  between 1.8.8 and 3.1.2 versions on x86

Test Info


Library NameMatrixSSL
Version #11.8.8
Version #23.1.2
CPU Architecturex86
GCC Version4.5

Test Results


Total Header Files2
Total Shared Libraries1
Total Symbols / Types21 / 19
VerdictIncompatible
(66.67%)

Problem Summary


SeverityCount
Added Symbols-140
Removed SymbolsHigh7
Problems with
Data Types
High0
Medium0
Low2
Problems with
Symbols
High11
Medium7
Low19
Problems with
Constants
Low7

Added Symbols (140)


asn1.h, libmatrixssl.so
getAsnAlgorithmIdentifier ( unsigned char** pp, uint32 len, int32* oi, int32 isPubKey, int32* paramLen )
getAsnBig psPool_t* pool, unsigned char** pp, uint32 len, pstm_int* big )
getAsnInteger ( unsigned char** pp, uint32 len, int32* val )
getAsnLength ( unsigned char** p, uint32 size, uint32* valLen )
getAsnRsaPubKey psPool_t* pool, unsigned char** pp, uint32 len, psRsaKey_t* pubKey )
getAsnSequence ( unsigned char** pp, uint32 len, uint32* seqlen )
getAsnSet ( unsigned char** pp, uint32 len, uint32* setlen )

coreApi.h, libmatrixssl.so
psCompareTime psTime_t a, psTime_t b )
psCoreClose ( )
psCoreOpen ( )
psDiffMsecs psTime_t then, psTime_t now )
psFreeList psList_t* list )
psGetEntropy ( unsigned char* bytes, uint32 size )
psGetFileBuf psPool_t* pool, char const* fileName, unsigned char** buf, int32* bufLen )
psGetTime psTime_t* t )
psParseList psPool_t* pool, char* list, char const separator, psList_t** items )

cryptoApi.h, libmatrixssl.so
pkcs1DecodePrivFile psPool_t* pool, char* fileName, char* password, unsigned char** DERout, uint32* DERlen )
pkcs1ParsePrivBin psPool_t* pool, unsigned char* p, uint32 size, psPubKey_t** key )
pkcs1ParsePrivFile psPool_t* pool, char* fileName, char* password, psPubKey_t** outkey )
pkcs5pbkdf1 ( unsigned char* pass, uint32 passlen, unsigned char* salt, int32 iter, unsigned char* key )
psAesDecrypt ( psCipherContext_t* ctx, unsigned char* ct, unsigned char* pt, uint32 len )
psAesDecryptBlock ( unsigned char const* ct, unsigned char* pt, psAesKey_t* skey )
psAesEncrypt ( psCipherContext_t* ctx, unsigned char* pt, unsigned char* ct, uint32 len )
psAesEncryptBlock ( unsigned char const* pt, unsigned char* ct, psAesKey_t* skey )
psAesInit ( psCipherContext_t* ctx, unsigned char* IV, unsigned char* key, uint32 keylen )
psAesInitKey ( unsigned char const* key, uint32 keylen, psAesKey_t* skey )
psDes3Decrypt ( psCipherContext_t* ctx, unsigned char* ct, unsigned char* pt, uint32 len )
psDes3DecryptBlock ( unsigned char const* ct, unsigned char* pt, psDes3Key_t* skey )
psDes3Encrypt ( psCipherContext_t* ctx, unsigned char* pt, unsigned char* ct, uint32 len )
psDes3EncryptBlock ( unsigned char const* pt, unsigned char* ct, psDes3Key_t* skey )
psDes3Init ( psCipherContext_t* ctx, unsigned char* IV, unsigned char* key, uint32 keylen )
psDes3InitKey ( unsigned char const* key, uint32 keylen, psDes3Key_t* skey )
psFreePubKey psPubKey_t* key )
psHmacMd5 ( unsigned char* key, uint32 keyLen, unsigned char const* buf, uint32 len, unsigned char* hash, unsigned char* hmacKey, uint32* hmacKeyLen )
psHmacMd5Final ( psHmacContext_t* ctx, unsigned char* hash )
psHmacMd5Init ( psHmacContext_t* ctx, unsigned char* key, uint32 keyLen )
psHmacMd5Update ( psHmacContext_t* ctx, unsigned char const* buf, uint32 len )
psHmacSha1 ( unsigned char* key, uint32 keyLen, unsigned char const* buf, uint32 len, unsigned char* hash, unsigned char* hmacKey, uint32* hmacKeyLen )
psHmacSha1Final ( psHmacContext_t* ctx, unsigned char* hash )
psHmacSha1Init ( psHmacContext_t* ctx, unsigned char* key, uint32 keyLen )
psHmacSha1Update ( psHmacContext_t* ctx, unsigned char const* buf, uint32 len )
psMd5Final ( psDigestContext_t* md, unsigned char* hash )
psMd5Init psDigestContext_t* md )
psMd5Update ( psDigestContext_t* md, unsigned char const* buf, uint32 len )
psNewPubKey psPool_t* pool )
psRsaCrypt psPool_t* pool, unsigned char const* in, uint32 inlen, unsigned char* out, uint32* outlen, psRsaKey_t* key, int32 type )
psRsaDecryptPriv psPool_t* pool, psRsaKey_t* key, unsigned char* in, uint32 inlen, unsigned char* out, uint32 outlen )
psRsaDecryptPub psPool_t* pool, psRsaKey_t* key, unsigned char* in, uint32 inlen, unsigned char* out, uint32 outlen )
psRsaEncryptPub psPool_t* pool, psRsaKey_t* key, unsigned char* in, uint32 inlen, unsigned char* out, uint32 outlen )
psSha1Final ( psDigestContext_t* md, unsigned char* hash )
psSha1Init psDigestContext_t* md )
psSha1Update ( psDigestContext_t* md, unsigned char const* buf, uint32 len )
psX509AuthenticateCert psPool_t* pool, psX509Cert_t* subjectCert, psX509Cert_t* issuerCert )
psX509FreeCert psX509Cert_t* cert )
psX509ParseCert psPool_t* pool, unsigned char* pp, uint32 size, psX509Cert_t** outcert, int32 flags )
psX509ParseCertFile psPool_t* pool, char* fileName, psX509Cert_t** outcert, int32 flags )

cryptolib.h, libmatrixssl.so
psBase64decode ( unsigned char const* in, uint32 len, unsigned char* out, uint32* outlen )

matrixsslApi.h, libmatrixssl.so
matrixSslDeleteHelloExtension tlsExtension_t* extension )
matrixSslDeleteKeys sslKeys_t* keys )
matrixSslEncodeRehandshake ssl* ssl, sslKeys_t* keys, int32(*certCb)(ssl*, psX509Cert_t*, int32), uint32 sessionOption, uint32 cipherSpec )
matrixSslEncodeWritebuf ssl* ssl, uint32 len )
matrixSslGetOutdata ssl* ssl, unsigned char** buf )
matrixSslGetReadbuf ssl* ssl, unsigned char** buf )
matrixSslGetWritebuf ssl* ssl, unsigned char** buf, uint32 reqLen )
matrixSslLoadHelloExtension ( tlsExtension_t* extension, unsigned char* extData, uint32 length, uint32 extType )
matrixSslLoadRsaKeys sslKeys_t* keys, char const* certFile, char const* privFile, char const* privPass, char const* trustedCAFile )
matrixSslLoadRsaKeysMem sslKeys_t* keys, unsigned char* certBuf, int32 certLen, unsigned char* privBuf, int32 privLen, unsigned char* trustedCABuf, int32 trustedCALen )
matrixSslNewClientSession ssl** ssl, sslKeys_t* keys, sslSessionId_t* sid, uint32 cipherSpec, int32(*certCb)(ssl*, psX509Cert_t*, int32), tlsExtension_t* extensions, int32(*extCb)(ssl*, unsigned short, unsigned short, void*) )
matrixSslNewHelloExtension tlsExtension_t** extension )
matrixSslNewKeys sslKeys_t** keys )
matrixSslNewServerSession ssl** ssl, sslKeys_t* keys, int32(*certCb)(ssl*, psX509Cert_t*, int32) )
matrixSslProcessedData ssl* ssl, unsigned char** ptbuf, uint32* ptlen )
matrixSslReceivedData ssl* ssl, uint32 bytes, unsigned char** ptbuf, uint32* ptlen )
matrixSslSentData ssl* ssl, uint32 bytes )

matrixssllib.h, libmatrixssl.so
matrixSslGetEncodedHeaderSize ssl* ssl )
matrixSslGetEncodedSize ssl* ssl, uint32 len )
matrixUserCertValidator ssl* ssl, int32 alert, psX509Cert_t* subjectCert, sslCertCb_t certCb )
matrixValidateCerts psPool_t* pool, psX509Cert_t* subjectCerts, psX509Cert_t* issuerCerts )
sslCreateKeys ssl* ssl )
sslEncodeClosureAlert ssl* ssl, sslBuf_t* out, uint32* reqLen )
tlsDeriveKeys ssl* ssl )
tlsGenerateFinishedHash ( psDigestContext_t* md5, psDigestContext_t* sha1, unsigned char* masterSecret, unsigned char* out, int32 sender )
tlsHMACSha1 ssl* ssl, int32 mode, unsigned char type, unsigned char* data, uint32 len, unsigned char* mac )

osdep.h, libmatrixssl.so
_psError char* msg )
_psErrorInt char* msg, int32 val )
_psErrorStr char* msg, char* val )
_psTrace char* msg )
_psTraceInt char* msg, int32 val )
_psTracePtr char* message, void* value )
_psTraceStr char* msg, char* val )
osdepEntropyClose ( )
osdepEntropyOpen ( )
osdepTimeClose ( )
osdepTimeOpen ( )
osdepTraceClose ( )
osdepTraceOpen ( )

pstm.h, libmatrixssl.so
pstm_2expt pstm_int* a, int32 b )
pstm_add pstm_int* a, pstm_int* b, pstm_int* c )
pstm_clamp pstm_int* a )
pstm_clear pstm_int* a )
pstm_clear_multi pstm_int* mp0, pstm_int* mp1, pstm_int* mp2, pstm_int* mp3, pstm_int* mp4, pstm_int* mp5, pstm_int* mp6, pstm_int* mp7 )
pstm_cmp pstm_int* a, pstm_int* b )
pstm_cmp_d pstm_int* a, pstm_digit b )
pstm_cmp_mag pstm_int* a, pstm_int* b )
pstm_copy pstm_int* a, pstm_int* b )
pstm_count_bits pstm_int* a )
pstm_div psPool_t* pool, pstm_int* a, pstm_int* b, pstm_int* c, pstm_int* d )
pstm_div_2 pstm_int* a, pstm_int* b )
pstm_div_2d psPool_t* pool, pstm_int* a, int32 b, pstm_int* c, pstm_int* d )
pstm_exptmod psPool_t* pool, pstm_int* G, pstm_int* X, pstm_int* P, pstm_int* Y )
pstm_grow pstm_int* a, int32 size )
pstm_init psPool_t* pool, pstm_int* a )
pstm_init_copy psPool_t* pool, pstm_int* a, pstm_int* b, int32 toSqr )
pstm_init_for_read_unsigned_bin psPool_t* pool, pstm_int* a, uint32 len )
pstm_init_size psPool_t* pool, pstm_int* a, uint32 size )
pstm_lshd pstm_int* a, int32 b )
pstm_mod psPool_t* pool, pstm_int* a, pstm_int* b, pstm_int* c )
pstm_montgomery_calc_normalization pstm_int* a, pstm_int* b )
pstm_montgomery_reduce psPool_t* pool, pstm_int* a, pstm_int* m, pstm_digit mp, pstm_digit* paD, uint32 paDlen )
pstm_montgomery_setup pstm_int* a, pstm_digit* rho )
pstm_mul_2 pstm_int* a, pstm_int* b )
pstm_mul_comba psPool_t* pool, pstm_int* A, pstm_int* B, pstm_int* C, pstm_digit* paD, uint32 paDlen )
pstm_mul_d pstm_int* a, pstm_digit b, pstm_int* c )
pstm_mulmod psPool_t* pool, pstm_int* a, pstm_int* b, pstm_int* c, pstm_int* d )
pstm_read_unsigned_bin pstm_int* a, unsigned char* b, int32 c )
pstm_rshd pstm_int* a, int32 x )
pstm_set pstm_int* a, pstm_digit b )
pstm_sqr_comba psPool_t* pool, pstm_int* A, pstm_int* B, pstm_digit* paD, uint32 paDlen )
pstm_sub pstm_int* a, pstm_int* b, pstm_int* c )
pstm_sub_d psPool_t* pool, pstm_int* a, pstm_digit b, pstm_int* c )
pstm_to_unsigned_bin psPool_t* pool, pstm_int* a, unsigned char* b )
pstm_unsigned_bin_size pstm_int* a )
pstm_zero pstm_int* a )
s_pstm_sub pstm_int* a, pstm_int* b, pstm_int* c )

pubkey.h, libmatrixssl.so
pkcs1Pad ( unsigned char* in, uint32 inlen, unsigned char* out, uint32 outlen, int32 cryptType )
pkcs1Unpad ( unsigned char* in, uint32 inlen, unsigned char* out, uint32 outlen, int32 decryptType )
psRsaFreeKey psRsaKey_t* key )

x509.h, libmatrixssl.so
psX509FreeDNStruct x509DNattributes_t* dn )
psX509GetDNAttributes psPool_t* pool, unsigned char** pp, uint32 len, x509DNattributes_t* attribs, int32 flags )
psX509GetSignature psPool_t* pool, unsigned char** pp, uint32 len, unsigned char** sig, uint32* sigLen )

to the top

Removed Symbols (7)


matrixSsl.h, libmatrixssl.so
matrixSslAssignNewKeys int* ssl, sslKeys_t* keys )
matrixSslFreeKeys sslKeys_t* keys )
matrixSslFreeSessionId sslSessionId_t* sessionId )
matrixSslGetResumptionFlag int* ssl, char* flag )
matrixSslReadKeys ( sslKeys_t** keys, char const* certFile, char const* privFile, char const* privPass, char const* trustedCAFile )
matrixSslReadKeysMem ( sslKeys_t** keys, unsigned char* certBuf, int32 certLen, unsigned char* privBuf, int32 privLen, unsigned char* trustedCABuf, int32 trustedCALen )
matrixSslSetResumptionFlag int* ssl, char flag )

to the top

Problems with Symbols, High Severity (11)


matrixSsl.h, libmatrixssl.so
[+] matrixSslDecode int* ssl, sslBuf_t* in, sslBuf_t* out, unsigned char* error, unsigned char* alertLevel, unsigned char* alertDescription ) (7)
[+] matrixSslEncode int* ssl, unsigned char* in, int32 inlen, sslBuf_t* out ) (3)
[+] matrixSslEncodeClientHello int* ssl, sslBuf_t* out, unsigned short cipherSpec ) (1)

to the top

Problems with Symbols, Medium Severity (7)


matrixSsl.h, libmatrixssl.so
[+] matrixSslEncode int* ssl, unsigned char* in, int32 inlen, sslBuf_t* out ) (1)
[+] matrixSslEncodeClientHello int* ssl, sslBuf_t* out, unsigned short cipherSpec ) (2)
[+] matrixSslEncodeClosureAlert int* ssl, sslBuf_t* out ) (1)
[+] matrixSslEncodeHelloRequest int* ssl, sslBuf_t* out ) (1)
[+] matrixSslGetSessionId int* ssl, sslSessionId_t** sessionId ) (1)
[+] matrixSslSetCertValidator int* ssl, int32(*certValidator)(sslCertInfo_t*, void*), void* arg ) (1)

to the top

Problems with Data Types, Low Severity (2)


matrixCommon.h
[+] typedef ssl_t (2)

to the top

Problems with Symbols, Low Severity (19)


matrixSsl.h, libmatrixssl.so
[+] matrixSslDecode int* ssl, sslBuf_t* in, sslBuf_t* out, unsigned char* error, unsigned char* alertLevel, unsigned char* alertDescription ) (1)
[+] matrixSslDeleteSession int* ssl ) (1)
[+] matrixSslEncode int* ssl, unsigned char* in, int32 inlen, sslBuf_t* out ) (2)
[+] matrixSslEncodeClientHello int* ssl, sslBuf_t* out, unsigned short cipherSpec ) (2)
[+] matrixSslEncodeClosureAlert int* ssl, sslBuf_t* out ) (1)
[+] matrixSslEncodeHelloRequest int* ssl, sslBuf_t* out ) (2)
[+] matrixSslGetAnonStatus int* ssl, int32* anonArg ) (1)
[+] matrixSslGetSessionId int* ssl, sslSessionId_t** sessionId ) (2)
[+] matrixSslHandshakeIsComplete int* ssl ) (1)
[+] matrixSslNewSession int** ssl, sslKeys_t* keys, sslSessionId_t* session, int32 flags ) (3)
[+] matrixSslSetCertValidator int* ssl, int32(*certValidator)(sslCertInfo_t*, void*), void* arg ) (2)
[+] matrixSslSetSessionOption int* ssl, int32 option, void* arg ) (1)

to the top

Problems with Constants (7)


matrixSsl.h
[+] SSL_ALERT
[+] SSL_ALLOW_ANON_CONNECTION
[+] SSL_FILE_NOT_FOUND
[+] SSL_FULL
[+] SSL_PARTIAL
[+] SSL_PROCESS_DATA
[+] SSL_SEND_RESPONSE

to the top

Header Files (2)


matrixCommon.h
matrixSsl.h

to the top

Shared Libraries (1)


libmatrixssl.so

to the top




Generated on Sat Sep 3 18:52:31 2011 for MatrixSSL by ABI Compliance Checker 1.93.8  
A tool for checking backward binary compatibility of a shared C/C++ library API