Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
pkcs5.h
00001 /** 00002 * \file pkcs5.h 00003 * 00004 * \brief PKCS#5 functions 00005 * 00006 * \author Mathias Olsson <mathias@kompetensum.com> 00007 */ 00008 /* 00009 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved 00010 * SPDX-License-Identifier: Apache-2.0 00011 * 00012 * Licensed under the Apache License, Version 2.0 (the "License"); you may 00013 * not use this file except in compliance with the License. 00014 * You may obtain a copy of the License at 00015 * 00016 * http://www.apache.org/licenses/LICENSE-2.0 00017 * 00018 * Unless required by applicable law or agreed to in writing, software 00019 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 00020 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00021 * See the License for the specific language governing permissions and 00022 * limitations under the License. 00023 * 00024 * This file is part of mbed TLS (https://tls.mbed.org) 00025 */ 00026 #ifndef MBEDTLS_PKCS5_H 00027 #define MBEDTLS_PKCS5_H 00028 00029 #include "asn1.h" 00030 #include "md.h" 00031 00032 #include <stddef.h> 00033 #include <stdint.h> 00034 00035 #define MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA -0x2f80 /**< Bad input parameters to function. */ 00036 #define MBEDTLS_ERR_PKCS5_INVALID_FORMAT -0x2f00 /**< Unexpected ASN.1 data. */ 00037 #define MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE -0x2e80 /**< Requested encryption or digest alg not available. */ 00038 #define MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH -0x2e00 /**< Given private key password does not allow for correct decryption. */ 00039 00040 #define MBEDTLS_PKCS5_DECRYPT 0 00041 #define MBEDTLS_PKCS5_ENCRYPT 1 00042 00043 #ifdef __cplusplus 00044 extern "C" { 00045 #endif 00046 00047 /** 00048 * \brief PKCS#5 PBES2 function 00049 * 00050 * \param pbe_params the ASN.1 algorithm parameters 00051 * \param mode either MBEDTLS_PKCS5_DECRYPT or MBEDTLS_PKCS5_ENCRYPT 00052 * \param pwd password to use when generating key 00053 * \param pwdlen length of password 00054 * \param data data to process 00055 * \param datalen length of data 00056 * \param output output buffer 00057 * 00058 * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails. 00059 */ 00060 int mbedtls_pkcs5_pbes2( const mbedtls_asn1_buf *pbe_params, int mode, 00061 const unsigned char *pwd, size_t pwdlen, 00062 const unsigned char *data, size_t datalen, 00063 unsigned char *output ); 00064 00065 /** 00066 * \brief PKCS#5 PBKDF2 using HMAC 00067 * 00068 * \param ctx Generic HMAC context 00069 * \param password Password to use when generating key 00070 * \param plen Length of password 00071 * \param salt Salt to use when generating key 00072 * \param slen Length of salt 00073 * \param iteration_count Iteration count 00074 * \param key_length Length of generated key in bytes 00075 * \param output Generated key. Must be at least as big as key_length 00076 * 00077 * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails. 00078 */ 00079 int mbedtls_pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, const unsigned char *password, 00080 size_t plen, const unsigned char *salt, size_t slen, 00081 unsigned int iteration_count, 00082 uint32_t key_length, unsigned char *output ); 00083 00084 /** 00085 * \brief Checkup routine 00086 * 00087 * \return 0 if successful, or 1 if the test failed 00088 */ 00089 int mbedtls_pkcs5_self_test( int verbose ); 00090 00091 #ifdef __cplusplus 00092 } 00093 #endif 00094 00095 #endif /* pkcs5.h */
Generated on Tue Jul 12 2022 12:45:41 by
