mirror of
https://github.com/apache/nuttx-apps.git
synced 2025-07-04 19:07:16 +08:00

Most tools used for compliance and SBOM generation use SPDX identifiers This change brings us a step closer to an easy SBOM generation. Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
174 lines
5.5 KiB
C
174 lines
5.5 KiB
C
/****************************************************************************
|
|
* apps/crypto/openssl_mbedtls_wrapper/include/openssl/evp.h
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership. The
|
|
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
* License for the specific language governing permissions and limitations
|
|
* under the License.
|
|
****************************************************************************/
|
|
|
|
#ifndef OPENSSL_MBEDTLS_WRAPPER_EVP_H
|
|
#define OPENSSL_MBEDTLS_WRAPPER_EVP_H
|
|
|
|
/****************************************************************************
|
|
* Included Files
|
|
****************************************************************************/
|
|
|
|
#include <openssl/base.h>
|
|
#include <openssl/cipher.h>
|
|
#include <openssl/digest.h>
|
|
#include <openssl/ec_key.h>
|
|
#include <openssl/mem.h>
|
|
#include <openssl/nid.h>
|
|
#include <openssl/types.h>
|
|
|
|
/****************************************************************************
|
|
* Pre-processor Definitions
|
|
****************************************************************************/
|
|
|
|
#define EVP_PKEY_RSA NID_rsaEncryption
|
|
#define EVP_PKEY_EC NID_X9_62_id_ecPublicKey
|
|
#define EVP_PKEY_ED25519 NID_ED25519
|
|
|
|
#define EVP_PKEY_X25519 NID_X25519
|
|
|
|
struct evp_pkey_st
|
|
{
|
|
void *pkey_pm;
|
|
const PKEY_METHOD *method;
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/****************************************************************************
|
|
* Public Function Prototypes
|
|
****************************************************************************/
|
|
|
|
int EVP_PKEY_id(const EVP_PKEY *pkey);
|
|
|
|
RSA *EVP_PKEY_get1_RSA(const EVP_PKEY *pkey);
|
|
|
|
int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key);
|
|
|
|
EVP_PKEY *__EVP_PKEY_new(EVP_PKEY *ipk);
|
|
|
|
EVP_PKEY *EVP_PKEY_new(void);
|
|
|
|
void EVP_PKEY_free(EVP_PKEY *pkey);
|
|
|
|
void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
|
|
|
|
EC_KEY *EVP_PKEY_get0_EC_KEY(const EVP_PKEY *pkey);
|
|
|
|
EC_KEY *EVP_PKEY_get1_EC_KEY(const EVP_PKEY *pkey);
|
|
|
|
int EVP_PKEY_type(int nid);
|
|
|
|
EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **out,
|
|
const uint8_t **inp, long len);
|
|
|
|
int i2d_PUBKEY(const EVP_PKEY *pkey, uint8_t **outp);
|
|
|
|
EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *unused,
|
|
const uint8_t *in, size_t len);
|
|
|
|
int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key);
|
|
|
|
int EVP_PKEY_bits(const EVP_PKEY *pkey);
|
|
|
|
int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
|
|
const EVP_MD *type, ENGINE *e,
|
|
EVP_PKEY *pkey);
|
|
|
|
int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t len);
|
|
|
|
int EVP_DigestSignFinal(EVP_MD_CTX *ctx, uint8_t *out_sig,
|
|
size_t *out_sig_len);
|
|
|
|
int EVP_DigestSign(EVP_MD_CTX *ctx, uint8_t *out_sig,
|
|
size_t *out_sig_len, const uint8_t *data,
|
|
size_t data_len);
|
|
|
|
int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
|
|
const EVP_MD *type, ENGINE *e,
|
|
EVP_PKEY *pkey);
|
|
|
|
int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data,
|
|
size_t len);
|
|
|
|
int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const uint8_t *sig,
|
|
size_t sig_len);
|
|
|
|
EVP_PKEY *d2i_PUBKEY(EVP_PKEY **out, const uint8_t **inp,
|
|
long len);
|
|
|
|
int EVP_PKEY_size(const EVP_PKEY *pkey);
|
|
|
|
int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int padding);
|
|
|
|
int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int salt_len);
|
|
|
|
int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md);
|
|
|
|
int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md);
|
|
|
|
EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
|
|
|
|
int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);
|
|
|
|
int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, uint8_t *out,
|
|
size_t *out_len, const uint8_t *in,
|
|
size_t in_len);
|
|
|
|
int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);
|
|
|
|
int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, uint8_t *out,
|
|
size_t *out_len, const uint8_t *in,
|
|
size_t in_len);
|
|
|
|
int i2d_PrivateKey(const EVP_PKEY *key, uint8_t **outp);
|
|
|
|
EVP_PKEY *X509_get_pubkey(X509 *x509);
|
|
|
|
int EVP_marshal_private_key(CBB *cbb, const EVP_PKEY *key);
|
|
|
|
int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx);
|
|
|
|
int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer);
|
|
|
|
int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, uint8_t *out,
|
|
size_t *out_len);
|
|
|
|
int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, uint8_t *out,
|
|
size_t *out_len);
|
|
|
|
int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, uint8_t *key, size_t *out_key_len);
|
|
|
|
int PKCS5_PBKDF2_HMAC(const char *password, size_t password_len,
|
|
const uint8_t *salt, size_t salt_len,
|
|
unsigned iterations, const EVP_MD *digest,
|
|
size_t key_len, uint8_t *out_key);
|
|
|
|
const PKEY_METHOD *EVP_PKEY_method(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* OPENSSL_MBEDTLS_WRAPPER_EVP_H */
|