KDF error codes reworked
authorPauli <paul.dale@oracle.com>
Sat, 24 Aug 2019 10:14:51 +0000 (20:14 +1000)
committerPauli <paul.dale@oracle.com>
Fri, 6 Sep 2019 09:27:57 +0000 (19:27 +1000)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9662)

crypto/ec/ec_err.c
crypto/err/err_all.c
crypto/err/openssl.txt
include/openssl/ecerr.h
include/openssl/evperr.h
providers/common/include/internal/providercommonerr.h
providers/common/provider_err.c

index d2fee0597f656f210472d58225e99cc964a8b59f..566b40f13d4ce3d7cb8ea3db8b0aa3773a987843 100644 (file)
@@ -23,6 +23,8 @@ static const ERR_STRING_DATA EC_str_reasons[] = {
     "coordinates out of range"},
     {ERR_PACK(ERR_LIB_EC, 0, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH),
     "curve does not support ecdh"},
+    {ERR_PACK(ERR_LIB_EC, 0, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA),
+    "curve does not support ecdsa"},
     {ERR_PACK(ERR_LIB_EC, 0, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING),
     "curve does not support signing"},
     {ERR_PACK(ERR_LIB_EC, 0, EC_R_D2I_ECPKPARAMETERS_FAILURE),
index 347bfa0e4299e0586d4b6908505c31f7e8d747df..972421f4025709685016bdac91ae22ad93399461 100644 (file)
@@ -102,7 +102,6 @@ int err_load_crypto_strings_int(void)
         ERR_load_ESS_strings() == 0 ||
         ERR_load_ASYNC_strings() == 0 ||
 #endif
-        ERR_load_KDF_strings() == 0 ||
         ERR_load_OSSL_STORE_strings() == 0 ||
         ERR_load_PROP_strings() == 0 ||
         ERR_load_PROV_strings() == 0)
index 6bf5fcdb9d0178d78c91a426f58e1f091d378d82..f74659c599eb208cc2362ccd9880a3ee96ac8888 100644 (file)
@@ -825,11 +825,8 @@ EVP_F_EVP_DIGESTUPDATE:231:EVP_DigestUpdate
 EVP_F_EVP_ENCRYPTDECRYPTUPDATE:219:evp_EncryptDecryptUpdate
 EVP_F_EVP_ENCRYPTFINAL_EX:127:EVP_EncryptFinal_ex
 EVP_F_EVP_ENCRYPTUPDATE:167:EVP_EncryptUpdate
-EVP_F_EVP_KDF_CTRL:224:EVP_KDF_ctrl
-EVP_F_EVP_KDF_CTRL_STR:225:EVP_KDF_ctrl_str
 EVP_F_EVP_KDF_CTX_DUP:220:
-EVP_F_EVP_KDF_CTX_NEW:240:EVP_KDF_CTX_new
-EVP_F_EVP_KDF_CTX_NEW_ID:226:EVP_KDF_CTX_new_id
+EVP_F_EVP_KDF_CTX_NEW:221:
 EVP_F_EVP_KEYEXCH_FETCH:245:EVP_KEYEXCH_fetch
 EVP_F_EVP_KEYEXCH_FROM_DISPATCH:244:evp_keyexch_from_dispatch
 EVP_F_EVP_MAC_CTRL:209:EVP_MAC_ctrl
@@ -917,53 +914,6 @@ EVP_F_S390X_AES_GCM_CTRL:201:s390x_aes_gcm_ctrl
 EVP_F_S390X_AES_GCM_TLS_CIPHER:208:s390x_aes_gcm_tls_cipher
 EVP_F_SCRYPT_ALG:228:scrypt_alg
 EVP_F_UPDATE:173:update
-KDF_F_HKDF_EXTRACT:112:HKDF_Extract
-KDF_F_KDF_HKDF_DERIVE:113:kdf_hkdf_derive
-KDF_F_KDF_HKDF_NEW:114:kdf_hkdf_new
-KDF_F_KDF_HKDF_SIZE:115:kdf_hkdf_size
-KDF_F_KDF_MD2CTRL:116:kdf_md2ctrl
-KDF_F_KDF_PBKDF2_CTRL:140:kdf_pbkdf2_ctrl
-KDF_F_KDF_PBKDF2_CTRL_STR:117:kdf_pbkdf2_ctrl_str
-KDF_F_KDF_PBKDF2_DERIVE:118:kdf_pbkdf2_derive
-KDF_F_KDF_PBKDF2_NEW:119:kdf_pbkdf2_new
-KDF_F_KDF_SCRYPT_CTRL_STR:120:kdf_scrypt_ctrl_str
-KDF_F_KDF_SCRYPT_CTRL_UINT32:121:kdf_scrypt_ctrl_uint32
-KDF_F_KDF_SCRYPT_CTRL_UINT64:122:kdf_scrypt_ctrl_uint64
-KDF_F_KDF_SCRYPT_DERIVE:123:kdf_scrypt_derive
-KDF_F_KDF_SCRYPT_NEW:124:kdf_scrypt_new
-KDF_F_KDF_SSHKDF_CTRL:130:kdf_sshkdf_ctrl
-KDF_F_KDF_SSHKDF_CTRL_STR:131:kdf_sshkdf_ctrl_str
-KDF_F_KDF_SSHKDF_DERIVE:132:kdf_sshkdf_derive
-KDF_F_KDF_SSHKDF_NEW:133:kdf_sshkdf_new
-KDF_F_KDF_TLS1_PRF_CTRL_STR:125:kdf_tls1_prf_ctrl_str
-KDF_F_KDF_TLS1_PRF_DERIVE:126:kdf_tls1_prf_derive
-KDF_F_KDF_TLS1_PRF_NEW:127:kdf_tls1_prf_new
-KDF_F_PBKDF2_DERIVE:141:pbkdf2_derive
-KDF_F_PBKDF2_SET_MEMBUF:128:pbkdf2_set_membuf
-KDF_F_PKEY_HKDF_CTRL_STR:103:pkey_hkdf_ctrl_str
-KDF_F_PKEY_HKDF_DERIVE:102:pkey_hkdf_derive
-KDF_F_PKEY_HKDF_INIT:108:pkey_hkdf_init
-KDF_F_PKEY_SCRYPT_CTRL_STR:104:pkey_scrypt_ctrl_str
-KDF_F_PKEY_SCRYPT_CTRL_UINT64:105:pkey_scrypt_ctrl_uint64
-KDF_F_PKEY_SCRYPT_DERIVE:109:pkey_scrypt_derive
-KDF_F_PKEY_SCRYPT_INIT:106:pkey_scrypt_init
-KDF_F_PKEY_SCRYPT_SET_MEMBUF:107:pkey_scrypt_set_membuf
-KDF_F_PKEY_TLS1_PRF_CTRL_STR:100:pkey_tls1_prf_ctrl_str
-KDF_F_PKEY_TLS1_PRF_DERIVE:101:pkey_tls1_prf_derive
-KDF_F_PKEY_TLS1_PRF_INIT:110:pkey_tls1_prf_init
-KDF_F_SCRYPT_SET_MEMBUF:129:scrypt_set_membuf
-KDF_F_SSKDF_CTRL_STR:134:sskdf_ctrl_str
-KDF_F_SSKDF_DERIVE:135:sskdf_derive
-KDF_F_SSKDF_MAC2CTRL:136:sskdf_mac2ctrl
-KDF_F_SSKDF_NEW:137:sskdf_new
-KDF_F_SSKDF_SIZE:138:sskdf_size
-KDF_F_TLS1_PRF_ALG:111:tls1_prf_alg
-KDF_F_X942KDF_CTRL:142:x942kdf_ctrl
-KDF_F_X942KDF_DERIVE:143:x942kdf_derive
-KDF_F_X942KDF_HASH_KDM:144:x942kdf_hash_kdm
-KDF_F_X942KDF_NEW:145:x942kdf_new
-KDF_F_X942KDF_SIZE:146:x942kdf_size
-KDF_F_X963KDF_DERIVE:139:x963kdf_derive
 OBJ_F_OBJ_ADD_OBJECT:105:OBJ_add_object
 OBJ_F_OBJ_ADD_SIGID:107:OBJ_add_sigid
 OBJ_F_OBJ_CREATE:100:OBJ_create
@@ -2524,14 +2474,12 @@ EVP_R_XTS_DUPLICATED_KEYS:192:xts duplicated keys
 KDF_R_BAD_ENCODING:122:bad encoding
 KDF_R_BAD_LENGTH:123:bad length
 KDF_R_BOTH_MODE_AND_MODE_INT:127:both mode and mode int
-KDF_R_INAVLID_UKM_LEN:124:inavlid ukm len
 KDF_R_INVALID_DIGEST:100:invalid digest
 KDF_R_INVALID_ITERATION_COUNT:119:invalid iteration count
 KDF_R_INVALID_KEY_LEN:120:invalid key len
 KDF_R_INVALID_MAC_TYPE:116:invalid mac type
 KDF_R_INVALID_MODE:128:invalid mode
 KDF_R_INVALID_MODE_INT:129:invalid mode int
-KDF_R_INVALID_SALT_LEN:121:invalid salt len
 KDF_R_MISSING_CEK_ALG:125:missing cek alg
 KDF_R_MISSING_ITERATION_COUNT:109:missing iteration count
 KDF_R_MISSING_KEY:104:missing key
@@ -2712,26 +2660,52 @@ PROP_R_STRING_TOO_LONG:109:string too long
 PROP_R_TRAILING_CHARACTERS:110:trailing characters
 PROV_R_AES_KEY_SETUP_FAILED:101:aes key setup failed
 PROV_R_BAD_DECRYPT:100:bad decrypt
+PROV_R_BAD_ENCODING:141:bad encoding
+PROV_R_BAD_LENGTH:142:bad length
+PROV_R_BOTH_MODE_AND_MODE_INT:127:both mode and mode int
 PROV_R_CIPHER_OPERATION_FAILED:102:cipher operation failed
 PROV_R_FAILED_TO_GENERATE_KEY:121:failed to generate key
 PROV_R_FAILED_TO_GET_PARAMETER:103:failed to get parameter
 PROV_R_FAILED_TO_SET_PARAMETER:104:failed to set parameter
+PROV_R_INAVLID_UKM_LENGTH:146:inavlid ukm length
 PROV_R_INVALID_AAD:108:invalid aad
 PROV_R_INVALID_CUSTOM_LENGTH:111:invalid custom length
 PROV_R_INVALID_DATA:115:invalid data
+PROV_R_INVALID_DIGEST:122:invalid digest
+PROV_R_INVALID_ITERATION_COUNT:123:invalid iteration count
 PROV_R_INVALID_IVLEN:116:invalid ivlen
 PROV_R_INVALID_IV_LENGTH:109:invalid iv length
 PROV_R_INVALID_KEYLEN:117:invalid keylen
+PROV_R_INVALID_KEY_LEN:124:invalid key len
 PROV_R_INVALID_KEY_LENGTH:105:invalid key length
+PROV_R_INVALID_MODE:125:invalid mode
+PROV_R_INVALID_MODE_INT:126:invalid mode int
 PROV_R_INVALID_SALT_LENGTH:112:invalid salt length
 PROV_R_INVALID_TAG:110:invalid tag
 PROV_R_INVALID_TAGLEN:118:invalid taglen
+PROV_R_MISSING_CEK_ALG:144:missing cek alg
+PROV_R_MISSING_KEY:128:missing key
+PROV_R_MISSING_MESSAGE_DIGEST:129:missing message digest
+PROV_R_MISSING_PASS:130:missing pass
+PROV_R_MISSING_SALT:131:missing salt
+PROV_R_MISSING_SECRET:132:missing secret
+PROV_R_MISSING_SEED:140:missing seed
+PROV_R_MISSING_SESSION_ID:133:missing session id
+PROV_R_MISSING_TYPE:134:missing type
+PROV_R_MISSING_XCGHASH:135:missing xcghash
+PROV_R_NOT_SUPPORTED:136:not supported
 PROV_R_NOT_XOF_OR_INVALID_LENGTH:113:not xof or invalid length
 PROV_R_NO_KEY_SET:114:no key set
 PROV_R_OUTPUT_BUFFER_TOO_SMALL:106:output buffer too small
 PROV_R_TAG_NOTSET:119:tag notset
 PROV_R_TAG_NOT_NEEDED:120:tag not needed
+PROV_R_UNABLE_TO_LOAD_SHA1:143:unable to load sha1
+PROV_R_UNABLE_TO_LOAD_SHA256:147:unable to load sha256
+PROV_R_UNSUPPORTED_CEK_ALG:145:unsupported cek alg
+PROV_R_UNSUPPORTED_MAC_TYPE:137:unsupported mac type
+PROV_R_VALUE_ERROR:138:value error
 PROV_R_WRONG_FINAL_BLOCK_LENGTH:107:wrong final block length
+PROV_R_WRONG_OUTPUT_BUFFER_SIZE:139:wrong output buffer size
 RAND_R_ADDITIONAL_INPUT_TOO_LONG:102:additional input too long
 RAND_R_ALREADY_INSTANTIATED:103:already instantiated
 RAND_R_ARGUMENT_OUT_OF_RANGE:105:argument out of range
index 43d41d834013822bf4267994eb99e812a248bbf5..95723ec94b60359c554720839f9d5cd04e11d145 100644 (file)
@@ -39,9 +39,14 @@ int ERR_load_EC_strings(void);
 #   define EC_F_ECDH_SIMPLE_COMPUTE_KEY                     0
 #   define EC_F_ECDSA_DO_SIGN_EX                            0
 #   define EC_F_ECDSA_DO_VERIFY                             0
+#   define EC_F_ECDSA_S390X_NISTP_SIGN_SIG                  0
+#   define EC_F_ECDSA_S390X_NISTP_VERIFY_SIG                0
 #   define EC_F_ECDSA_SIGN_EX                               0
 #   define EC_F_ECDSA_SIGN_SETUP                            0
 #   define EC_F_ECDSA_SIG_NEW                               0
+#   define EC_F_ECDSA_SIMPLE_SIGN_SETUP                     0
+#   define EC_F_ECDSA_SIMPLE_SIGN_SIG                       0
+#   define EC_F_ECDSA_SIMPLE_VERIFY_SIG                     0
 #   define EC_F_ECDSA_VERIFY                                0
 #   define EC_F_ECD_ITEM_VERIFY                             0
 #   define EC_F_ECKEY_PARAM2TYPE                            0
@@ -110,6 +115,7 @@ int ERR_load_EC_strings(void);
 #   define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES    0
 #   define EC_F_EC_GROUP_CHECK                              0
 #   define EC_F_EC_GROUP_CHECK_DISCRIMINANT                 0
+#   define EC_F_EC_GROUP_CHECK_NAMED_CURVE                  0
 #   define EC_F_EC_GROUP_COPY                               0
 #   define EC_F_EC_GROUP_GET_CURVE                          0
 #   define EC_F_EC_GROUP_GET_CURVE_GF2M                     0
@@ -121,6 +127,8 @@ int ERR_load_EC_strings(void);
 #   define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS                0
 #   define EC_F_EC_GROUP_NEW                                0
 #   define EC_F_EC_GROUP_NEW_BY_CURVE_NAME                  0
+#   define EC_F_EC_GROUP_NEW_BY_CURVE_NAME_EX               0
+#   define EC_F_EC_GROUP_NEW_EX                             0
 #   define EC_F_EC_GROUP_NEW_FROM_DATA                      0
 #   define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS              0
 #   define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS            0
@@ -134,6 +142,7 @@ int ERR_load_EC_strings(void);
 #   define EC_F_EC_KEY_GENERATE_KEY                         0
 #   define EC_F_EC_KEY_NEW                                  0
 #   define EC_F_EC_KEY_NEW_METHOD                           0
+#   define EC_F_EC_KEY_NEW_METHOD_INT                       0
 #   define EC_F_EC_KEY_OCT2PRIV                             0
 #   define EC_F_EC_KEY_PRINT                                0
 #   define EC_F_EC_KEY_PRINT_FP                             0
@@ -186,6 +195,7 @@ int ERR_load_EC_strings(void);
 #   define EC_F_O2I_ECPUBLICKEY                             0
 #   define EC_F_OLD_EC_PRIV_DECODE                          0
 #   define EC_F_OSSL_ECDH_COMPUTE_KEY                       0
+#   define EC_F_OSSL_ECDSA_SIGN_SETUP                       0
 #   define EC_F_OSSL_ECDSA_SIGN_SIG                         0
 #   define EC_F_OSSL_ECDSA_VERIFY_SIG                       0
 #   define EC_F_PKEY_ECD_CTRL                               0
index 4a29c4b8274d5f1c8577a9da612fa5243b625708..64ed5a3b959517b5aa6979ffa0bdbfede739f018 100644 (file)
@@ -65,11 +65,8 @@ int ERR_load_EVP_strings(void);
 #  define EVP_F_EVP_ENCRYPTDECRYPTUPDATE                   0
 #  define EVP_F_EVP_ENCRYPTFINAL_EX                        0
 #  define EVP_F_EVP_ENCRYPTUPDATE                          0
-#  define EVP_F_EVP_KDF_CTRL                               0
-#  define EVP_F_EVP_KDF_CTRL_STR                           0
 #  define EVP_F_EVP_KDF_CTX_DUP                            0
 #  define EVP_F_EVP_KDF_CTX_NEW                            0
-#  define EVP_F_EVP_KDF_CTX_NEW_ID                         0
 #  define EVP_F_EVP_KEYEXCH_FETCH                          0
 #  define EVP_F_EVP_KEYEXCH_FROM_DISPATCH                  0
 #  define EVP_F_EVP_MAC_CTRL                               0
index c436495a5bc75a88255c55b13992b69e3d74e1d9..39f56b4950073ea94507818c5a919b9976d043f4 100644 (file)
@@ -51,25 +51,51 @@ int ERR_load_PROV_strings(void);
  */
 # define PROV_R_AES_KEY_SETUP_FAILED                      101
 # define PROV_R_BAD_DECRYPT                               100
+# define PROV_R_BAD_ENCODING                              141
+# define PROV_R_BAD_LENGTH                                142
+# define PROV_R_BOTH_MODE_AND_MODE_INT                    127
 # define PROV_R_CIPHER_OPERATION_FAILED                   102
 # define PROV_R_FAILED_TO_GENERATE_KEY                    121
 # define PROV_R_FAILED_TO_GET_PARAMETER                   103
 # define PROV_R_FAILED_TO_SET_PARAMETER                   104
+# define PROV_R_INAVLID_UKM_LENGTH                        146
 # define PROV_R_INVALID_AAD                               108
 # define PROV_R_INVALID_CUSTOM_LENGTH                     111
 # define PROV_R_INVALID_DATA                              115
+# define PROV_R_INVALID_DIGEST                            122
+# define PROV_R_INVALID_ITERATION_COUNT                   123
 # define PROV_R_INVALID_IVLEN                             116
 # define PROV_R_INVALID_IV_LENGTH                         109
 # define PROV_R_INVALID_KEYLEN                            117
+# define PROV_R_INVALID_KEY_LEN                           124
 # define PROV_R_INVALID_KEY_LENGTH                        105
+# define PROV_R_INVALID_MODE                              125
+# define PROV_R_INVALID_MODE_INT                          126
 # define PROV_R_INVALID_SALT_LENGTH                       112
 # define PROV_R_INVALID_TAG                               110
 # define PROV_R_INVALID_TAGLEN                            118
+# define PROV_R_MISSING_CEK_ALG                           144
+# define PROV_R_MISSING_KEY                               128
+# define PROV_R_MISSING_MESSAGE_DIGEST                    129
+# define PROV_R_MISSING_PASS                              130
+# define PROV_R_MISSING_SALT                              131
+# define PROV_R_MISSING_SECRET                            132
+# define PROV_R_MISSING_SEED                              140
+# define PROV_R_MISSING_SESSION_ID                        133
+# define PROV_R_MISSING_TYPE                              134
+# define PROV_R_MISSING_XCGHASH                           135
+# define PROV_R_NOT_SUPPORTED                             136
 # define PROV_R_NOT_XOF_OR_INVALID_LENGTH                 113
 # define PROV_R_NO_KEY_SET                                114
 # define PROV_R_OUTPUT_BUFFER_TOO_SMALL                   106
 # define PROV_R_TAG_NOTSET                                119
 # define PROV_R_TAG_NOT_NEEDED                            120
+# define PROV_R_UNABLE_TO_LOAD_SHA1                       143
+# define PROV_R_UNABLE_TO_LOAD_SHA256                     147
+# define PROV_R_UNSUPPORTED_CEK_ALG                       145
+# define PROV_R_UNSUPPORTED_MAC_TYPE                      137
+# define PROV_R_VALUE_ERROR                               138
 # define PROV_R_WRONG_FINAL_BLOCK_LENGTH                  107
+# define PROV_R_WRONG_OUTPUT_BUFFER_SIZE                  139
 
 #endif
index ed1d930712903092152c63938403718e9dc2e5c7..b9895593b97f571fb5af3b6c77274687e4867f0e 100644 (file)
@@ -17,6 +17,10 @@ static const ERR_STRING_DATA PROV_str_reasons[] = {
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_AES_KEY_SETUP_FAILED),
     "aes key setup failed"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_BAD_DECRYPT), "bad decrypt"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_BAD_ENCODING), "bad encoding"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_BAD_LENGTH), "bad length"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_BOTH_MODE_AND_MODE_INT),
+    "both mode and mode int"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_CIPHER_OPERATION_FAILED),
     "cipher operation failed"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_FAILED_TO_GENERATE_KEY),
@@ -25,19 +29,40 @@ static const ERR_STRING_DATA PROV_str_reasons[] = {
     "failed to get parameter"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_FAILED_TO_SET_PARAMETER),
     "failed to set parameter"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INAVLID_UKM_LENGTH),
+    "inavlid ukm length"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_AAD), "invalid aad"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_CUSTOM_LENGTH),
     "invalid custom length"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_DATA), "invalid data"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_DIGEST), "invalid digest"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_ITERATION_COUNT),
+    "invalid iteration count"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_IVLEN), "invalid ivlen"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_IV_LENGTH), "invalid iv length"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_KEYLEN), "invalid keylen"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_KEY_LEN), "invalid key len"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_KEY_LENGTH),
     "invalid key length"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_MODE), "invalid mode"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_MODE_INT), "invalid mode int"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_SALT_LENGTH),
     "invalid salt length"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_TAG), "invalid tag"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_INVALID_TAGLEN), "invalid taglen"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_CEK_ALG), "missing cek alg"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_KEY), "missing key"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_MESSAGE_DIGEST),
+    "missing message digest"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_PASS), "missing pass"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_SALT), "missing salt"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_SECRET), "missing secret"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_SEED), "missing seed"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_SESSION_ID),
+    "missing session id"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_TYPE), "missing type"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_MISSING_XCGHASH), "missing xcghash"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_NOT_SUPPORTED), "not supported"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_NOT_XOF_OR_INVALID_LENGTH),
     "not xof or invalid length"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_NO_KEY_SET), "no key set"},
@@ -45,8 +70,19 @@ static const ERR_STRING_DATA PROV_str_reasons[] = {
     "output buffer too small"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_TAG_NOTSET), "tag notset"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_TAG_NOT_NEEDED), "tag not needed"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_UNABLE_TO_LOAD_SHA1),
+    "unable to load sha1"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_UNABLE_TO_LOAD_SHA256),
+    "unable to load sha256"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_UNSUPPORTED_CEK_ALG),
+    "unsupported cek alg"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_UNSUPPORTED_MAC_TYPE),
+    "unsupported mac type"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_VALUE_ERROR), "value error"},
     {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_WRONG_FINAL_BLOCK_LENGTH),
     "wrong final block length"},
+    {ERR_PACK(ERR_LIB_PROV, 0, PROV_R_WRONG_OUTPUT_BUFFER_SIZE),
+    "wrong output buffer size"},
     {0, NULL}
 };