error.c File Reference

#include "polarssl/config.h"
#include "polarssl/error.h"
#include "polarssl/aes.h"
#include "polarssl/base64.h"
#include "polarssl/bignum.h"
#include "polarssl/blowfish.h"
#include "polarssl/camellia.h"
#include "polarssl/cipher.h"
#include "polarssl/ctr_drbg.h"
#include "polarssl/des.h"
#include "polarssl/dhm.h"
#include "polarssl/ecp.h"
#include "polarssl/entropy.h"
#include "polarssl/gcm.h"
#include "polarssl/md.h"
#include "polarssl/md5.h"
#include "polarssl/net.h"
#include "polarssl/oid.h"
#include "polarssl/padlock.h"
#include "polarssl/pbkdf2.h"
#include "polarssl/pem.h"
#include "polarssl/pk.h"
#include "polarssl/pkcs12.h"
#include "polarssl/pkcs5.h"
#include "polarssl/rsa.h"
#include "polarssl/sha1.h"
#include "polarssl/sha256.h"
#include "polarssl/sha512.h"
#include "polarssl/ssl.h"
#include "polarssl/x509.h"
#include "polarssl/xtea.h"
#include <string.h>
Include dependency graph for error.c:

Go to the source code of this file.

Functions

void polarssl_strerror (int ret, char *buf, size_t buflen)
 Error code layout.
void error_strerror (int ret, char *buf, size_t buflen)

Function Documentation

void error_strerror ( int  ret,
char *  buf,
size_t  buflen 
)

Definition at line 683 of file error.c.

References polarssl_strerror().

void polarssl_strerror ( int  errnum,
char *  buffer,
size_t  buflen 
)

Error code layout.

Currently we try to keep all error codes within the negative space of 16 bytes signed integers to support all platforms (-0x0000 - -0x8000). In addition we'd like to give two layers of information on the error if possible.

For that purpose the error codes are segmented in the following manner:

16 bit error code bit-segmentation

1 bit - Intentionally not used 3 bits - High level module ID 5 bits - Module-dependent error code 6 bits - Low level module errors 1 bit - Intentionally not used

Low-level module errors (0x007E-0x0002)

Module Nr Codes assigned MPI 7 0x0002-0x0010 GCM 2 0x0012-0x0014 BLOWFISH 2 0x0016-0x0018 THREADING 3 0x001A-0x001E AES 2 0x0020-0x0022 CAMELLIA 2 0x0024-0x0026 XTEA 1 0x0028-0x0028 BASE64 2 0x002A-0x002C OID 1 0x002E-0x002E PADLOCK 1 0x0030-0x0030 DES 1 0x0032-0x0032 CTR_DBRG 3 0x0034-0x003A ENTROPY 3 0x003C-0x0040 NET 11 0x0042-0x0056 ASN1 7 0x0060-0x006C MD2 1 0x0070-0x0070 MD4 1 0x0072-0x0072 MD5 1 0x0074-0x0074 SHA1 1 0x0076-0x0076 SHA256 1 0x0078-0x0078 SHA512 1 0x007A-0x007A PBKDF2 1 0x007C-0x007C

High-level module nr (3 bits - 0x1...-0x8...) Name ID Nr of Errors PEM 1 9 PKCS#12 1 4 (Started from top) X509 2 18 PK 2 13 (Started from top) DHM 3 9 PKCS5 3 4 (Started from top) RSA 4 9 ECP 4 7 (Started from top) MD 5 4 CIPHER 6 6 SSL 6 8 (Started from top) SSL 7 31

Module dependent error code (5 bits 0x.08.-0x.F8.) Translate a PolarSSL error code into a string representation, Result is truncated if necessary and always includes a terminating null byte.

Parameters:
errnum error code
buffer buffer to place representation in
buflen length of the buffer

Definition at line 168 of file error.c.

References POLARSSL_ERR_AES_INVALID_INPUT_LENGTH, POLARSSL_ERR_AES_INVALID_KEY_LENGTH, POLARSSL_ERR_ASN1_BUF_TOO_SMALL, POLARSSL_ERR_ASN1_INVALID_DATA, POLARSSL_ERR_ASN1_INVALID_LENGTH, POLARSSL_ERR_ASN1_LENGTH_MISMATCH, POLARSSL_ERR_ASN1_MALLOC_FAILED, POLARSSL_ERR_ASN1_OUT_OF_DATA, POLARSSL_ERR_ASN1_UNEXPECTED_TAG, POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL, POLARSSL_ERR_BASE64_INVALID_CHARACTER, POLARSSL_ERR_BLOWFISH_INVALID_INPUT_LENGTH, POLARSSL_ERR_BLOWFISH_INVALID_KEY_LENGTH, POLARSSL_ERR_CAMELLIA_INVALID_INPUT_LENGTH, POLARSSL_ERR_CAMELLIA_INVALID_KEY_LENGTH, POLARSSL_ERR_CIPHER_ALLOC_FAILED, POLARSSL_ERR_CIPHER_AUTH_FAILED, POLARSSL_ERR_CIPHER_BAD_INPUT_DATA, POLARSSL_ERR_CIPHER_FEATURE_UNAVAILABLE, POLARSSL_ERR_CIPHER_FULL_BLOCK_EXPECTED, POLARSSL_ERR_CIPHER_INVALID_PADDING, POLARSSL_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED, POLARSSL_ERR_CTR_DRBG_FILE_IO_ERROR, POLARSSL_ERR_CTR_DRBG_INPUT_TOO_BIG, POLARSSL_ERR_CTR_DRBG_REQUEST_TOO_BIG, POLARSSL_ERR_DES_INVALID_INPUT_LENGTH, POLARSSL_ERR_DHM_BAD_INPUT_DATA, POLARSSL_ERR_DHM_CALC_SECRET_FAILED, POLARSSL_ERR_DHM_FILE_IO_ERROR, POLARSSL_ERR_DHM_INVALID_FORMAT, POLARSSL_ERR_DHM_MAKE_PARAMS_FAILED, POLARSSL_ERR_DHM_MAKE_PUBLIC_FAILED, POLARSSL_ERR_DHM_MALLOC_FAILED, POLARSSL_ERR_DHM_READ_PARAMS_FAILED, POLARSSL_ERR_DHM_READ_PUBLIC_FAILED, POLARSSL_ERR_ECP_BAD_INPUT_DATA, POLARSSL_ERR_ECP_BUFFER_TOO_SMALL, POLARSSL_ERR_ECP_FEATURE_UNAVAILABLE, POLARSSL_ERR_ECP_INVALID_KEY, POLARSSL_ERR_ECP_MALLOC_FAILED, POLARSSL_ERR_ECP_RANDOM_FAILED, POLARSSL_ERR_ECP_VERIFY_FAILED, POLARSSL_ERR_ENTROPY_MAX_SOURCES, POLARSSL_ERR_ENTROPY_NO_SOURCES_DEFINED, POLARSSL_ERR_ENTROPY_SOURCE_FAILED, POLARSSL_ERR_GCM_AUTH_FAILED, POLARSSL_ERR_GCM_BAD_INPUT, POLARSSL_ERR_MD2_FILE_IO_ERROR, POLARSSL_ERR_MD4_FILE_IO_ERROR, POLARSSL_ERR_MD5_FILE_IO_ERROR, POLARSSL_ERR_MD_ALLOC_FAILED, POLARSSL_ERR_MD_BAD_INPUT_DATA, POLARSSL_ERR_MD_FEATURE_UNAVAILABLE, POLARSSL_ERR_MD_FILE_IO_ERROR, 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_MALLOC_FAILED, POLARSSL_ERR_MPI_NEGATIVE_VALUE, POLARSSL_ERR_MPI_NOT_ACCEPTABLE, 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, POLARSSL_ERR_NET_WANT_READ, POLARSSL_ERR_NET_WANT_WRITE, POLARSSL_ERR_OID_NOT_FOUND, POLARSSL_ERR_PADLOCK_DATA_MISALIGNED, POLARSSL_ERR_PBKDF2_BAD_INPUT_DATA, POLARSSL_ERR_PEM_BAD_INPUT_DATA, POLARSSL_ERR_PEM_FEATURE_UNAVAILABLE, POLARSSL_ERR_PEM_INVALID_DATA, POLARSSL_ERR_PEM_INVALID_ENC_IV, POLARSSL_ERR_PEM_MALLOC_FAILED, POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT, POLARSSL_ERR_PEM_PASSWORD_MISMATCH, POLARSSL_ERR_PEM_PASSWORD_REQUIRED, POLARSSL_ERR_PEM_UNKNOWN_ENC_ALG, POLARSSL_ERR_PK_BAD_INPUT_DATA, POLARSSL_ERR_PK_FEATURE_UNAVAILABLE, POLARSSL_ERR_PK_FILE_IO_ERROR, POLARSSL_ERR_PK_INVALID_ALG, POLARSSL_ERR_PK_INVALID_PUBKEY, POLARSSL_ERR_PK_KEY_INVALID_FORMAT, POLARSSL_ERR_PK_KEY_INVALID_VERSION, POLARSSL_ERR_PK_MALLOC_FAILED, POLARSSL_ERR_PK_PASSWORD_MISMATCH, POLARSSL_ERR_PK_PASSWORD_REQUIRED, POLARSSL_ERR_PK_TYPE_MISMATCH, POLARSSL_ERR_PK_UNKNOWN_NAMED_CURVE, POLARSSL_ERR_PK_UNKNOWN_PK_ALG, POLARSSL_ERR_PKCS12_BAD_INPUT_DATA, POLARSSL_ERR_PKCS12_FEATURE_UNAVAILABLE, POLARSSL_ERR_PKCS12_PASSWORD_MISMATCH, POLARSSL_ERR_PKCS12_PBE_INVALID_FORMAT, POLARSSL_ERR_PKCS5_BAD_INPUT_DATA, POLARSSL_ERR_PKCS5_FEATURE_UNAVAILABLE, POLARSSL_ERR_PKCS5_INVALID_FORMAT, POLARSSL_ERR_PKCS5_PASSWORD_MISMATCH, 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, POLARSSL_ERR_SHA1_FILE_IO_ERROR, POLARSSL_ERR_SHA256_FILE_IO_ERROR, POLARSSL_ERR_SHA512_FILE_IO_ERROR, 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_CLIENT_KEY_EXCHANGE_CS, POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_RP, POLARSSL_ERR_SSL_BAD_HS_FINISHED, POLARSSL_ERR_SSL_BAD_HS_NEW_SESSION_TICKET, POLARSSL_ERR_SSL_BAD_HS_PROTOCOL_VERSION, 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_COMPRESSION_FAILED, POLARSSL_ERR_SSL_CONN_EOF, POLARSSL_ERR_SSL_FATAL_ALERT_MESSAGE, POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE, POLARSSL_ERR_SSL_HW_ACCEL_FAILED, POLARSSL_ERR_SSL_HW_ACCEL_FALLTHROUGH, POLARSSL_ERR_SSL_INTERNAL_ERROR, POLARSSL_ERR_SSL_INVALID_MAC, POLARSSL_ERR_SSL_INVALID_RECORD, POLARSSL_ERR_SSL_MALLOC_FAILED, 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_PK_TYPE_MISMATCH, POLARSSL_ERR_SSL_PRIVATE_KEY_REQUIRED, POLARSSL_ERR_SSL_SESSION_TICKET_EXPIRED, POLARSSL_ERR_SSL_UNEXPECTED_MESSAGE, POLARSSL_ERR_SSL_UNKNOWN_CIPHER, POLARSSL_ERR_SSL_UNKNOWN_IDENTITY, POLARSSL_ERR_THREADING_BAD_INPUT_DATA, POLARSSL_ERR_THREADING_FEATURE_UNAVAILABLE, POLARSSL_ERR_THREADING_MUTEX_ERROR, POLARSSL_ERR_X509_BAD_INPUT_DATA, POLARSSL_ERR_X509_CERT_UNKNOWN_FORMAT, POLARSSL_ERR_X509_CERT_VERIFY_FAILED, POLARSSL_ERR_X509_FEATURE_UNAVAILABLE, POLARSSL_ERR_X509_FILE_IO_ERROR, POLARSSL_ERR_X509_INVALID_ALG, POLARSSL_ERR_X509_INVALID_DATE, POLARSSL_ERR_X509_INVALID_EXTENSIONS, POLARSSL_ERR_X509_INVALID_FORMAT, POLARSSL_ERR_X509_INVALID_NAME, POLARSSL_ERR_X509_INVALID_SERIAL, POLARSSL_ERR_X509_INVALID_SIGNATURE, POLARSSL_ERR_X509_INVALID_VERSION, POLARSSL_ERR_X509_MALLOC_FAILED, POLARSSL_ERR_X509_SIG_MISMATCH, POLARSSL_ERR_X509_UNKNOWN_OID, POLARSSL_ERR_X509_UNKNOWN_SIG_ALG, POLARSSL_ERR_X509_UNKNOWN_VERSION, and POLARSSL_ERR_XTEA_INVALID_INPUT_LENGTH.

Referenced by error_strerror(), and test_suite_error_strerror().


Generated on 9 Apr 2014 for PolarSSL v1.3.2 by  doxygen 1.6.1