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