Error to string translation. More...
#include <string.h>
Go to the source code of this file.
Functions | |
void | polarssl_strerror (int errnum, char *buffer, size_t buflen) |
Error code layout. | |
void | error_strerror (int errnum, char *buffer, size_t buflen) |
Error to string translation.
Copyright (C) 2006-2013, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Definition in file error.h.
void error_strerror | ( | int | errnum, | |
char * | buffer, | |||
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.
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().