mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-29 18:04:21 +01:00
da19f4c79f
Summary of merge conflicts: include/mbedtls/ecdh.h -> documentation style include/mbedtls/ecdsa.h -> documentation style include/mbedtls/ecp.h -> alt style, new error codes, documentation style include/mbedtls/error.h -> new error codes library/error.c -> new error codes (generated anyway) library/ecp.c: - code of an extracted function was changed library/ssl_cli.c: - code addition on one side near code change on the other side (ciphersuite validation) library/x509_crt.c -> various things - top fo file: helper structure added near old zeroize removed - documentation of find_parent_in()'s signature: improved on one side, added arguments on the other side - documentation of find_parent()'s signature: same as above - verify_chain(): variables initialised later to give compiler an opportunity to warn us if not initialised on a code path - find_parent(): funcion structure completely changed, for some reason git tried to insert a paragraph of the old structure... - merge_flags_with_cb(): data structure changed, one line was fixed with a cast to keep MSVC happy, this cast is already in the new version - in verify_restratable(): adjacent independent changes (function signature on one line, variable type on the next) programs/ssl/ssl_client2.c: - testing for IN_PROGRESS return code near idle() (event-driven): don't wait for data in the the socket if ECP_IN_PROGRESS tests/data_files/Makefile: adjacent independent additions tests/suites/test_suite_ecdsa.data: adjacent independent additions tests/suites/test_suite_x509parse.data: adjacent independent additions * development: (1059 commits) Change symlink to hardlink to avoid permission issues Fix out-of-tree testing symlinks on Windows Updated version number to 2.10.0 for release Add a disabled CMAC define in the no-entropy configuration Adapt the ARIA test cases for new ECB function Fix file permissions for ssl.h Add ChangeLog entry for PR#1651 Fix MicroBlaze register typo. Fix typo in doc and copy missing warning Fix edit mistake in cipher_wrap.c Update CTR doc for the 64-bit block cipher Update CTR doc for other 128-bit block ciphers Slightly tune ARIA CTR documentation Remove double declaration of mbedtls_ssl_list_ciphersuites Update CTR documentation Use zeroize function from new platform_util Move to new header style for ALT implementations Add ifdef for selftest in header file Fix typo in comments Use more appropriate type for local variable ...
139 lines
4.5 KiB
C
139 lines
4.5 KiB
C
/**
|
|
* \file pk_internal.h
|
|
*
|
|
* \brief Public Key abstraction layer: wrapper functions
|
|
*/
|
|
/*
|
|
* Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed 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.
|
|
*
|
|
* This file is part of mbed TLS (https://tls.mbed.org)
|
|
*/
|
|
|
|
#ifndef MBEDTLS_PK_WRAP_H
|
|
#define MBEDTLS_PK_WRAP_H
|
|
|
|
#if !defined(MBEDTLS_CONFIG_FILE)
|
|
#include "config.h"
|
|
#else
|
|
#include MBEDTLS_CONFIG_FILE
|
|
#endif
|
|
|
|
#include "pk.h"
|
|
|
|
struct mbedtls_pk_info_t
|
|
{
|
|
/** Public key type */
|
|
mbedtls_pk_type_t type;
|
|
|
|
/** Type name */
|
|
const char *name;
|
|
|
|
/** Get key size in bits */
|
|
size_t (*get_bitlen)( const void * );
|
|
|
|
/** Tell if the context implements this type (e.g. ECKEY can do ECDSA) */
|
|
int (*can_do)( mbedtls_pk_type_t type );
|
|
|
|
/** Verify signature */
|
|
int (*verify_func)( void *ctx, mbedtls_md_type_t md_alg,
|
|
const unsigned char *hash, size_t hash_len,
|
|
const unsigned char *sig, size_t sig_len );
|
|
|
|
/** Make signature */
|
|
int (*sign_func)( void *ctx, mbedtls_md_type_t md_alg,
|
|
const unsigned char *hash, size_t hash_len,
|
|
unsigned char *sig, size_t *sig_len,
|
|
int (*f_rng)(void *, unsigned char *, size_t),
|
|
void *p_rng );
|
|
|
|
#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
|
|
/** Verify signature (restartable) */
|
|
int (*verify_rs_func)( void *ctx, mbedtls_md_type_t md_alg,
|
|
const unsigned char *hash, size_t hash_len,
|
|
const unsigned char *sig, size_t sig_len,
|
|
void *rs_ctx );
|
|
|
|
/** Make signature (restartable) */
|
|
int (*sign_rs_func)( void *ctx, mbedtls_md_type_t md_alg,
|
|
const unsigned char *hash, size_t hash_len,
|
|
unsigned char *sig, size_t *sig_len,
|
|
int (*f_rng)(void *, unsigned char *, size_t),
|
|
void *p_rng, void *rs_ctx );
|
|
#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
|
|
|
|
/** Decrypt message */
|
|
int (*decrypt_func)( void *ctx, const unsigned char *input, size_t ilen,
|
|
unsigned char *output, size_t *olen, size_t osize,
|
|
int (*f_rng)(void *, unsigned char *, size_t),
|
|
void *p_rng );
|
|
|
|
/** Encrypt message */
|
|
int (*encrypt_func)( void *ctx, const unsigned char *input, size_t ilen,
|
|
unsigned char *output, size_t *olen, size_t osize,
|
|
int (*f_rng)(void *, unsigned char *, size_t),
|
|
void *p_rng );
|
|
|
|
/** Check public-private key pair */
|
|
int (*check_pair_func)( const void *pub, const void *prv );
|
|
|
|
/** Allocate a new context */
|
|
void * (*ctx_alloc_func)( void );
|
|
|
|
/** Free the given context */
|
|
void (*ctx_free_func)( void *ctx );
|
|
|
|
#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
|
|
/** Allocate the restart context */
|
|
void * (*rs_alloc_func)( void );
|
|
|
|
/** Free the restart context */
|
|
void (*rs_free_func)( void *rs_ctx );
|
|
#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
|
|
|
|
/** Interface with the debug module */
|
|
void (*debug_func)( const void *ctx, mbedtls_pk_debug_item *items );
|
|
|
|
};
|
|
#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
|
|
/* Container for RSA-alt */
|
|
typedef struct
|
|
{
|
|
void *key;
|
|
mbedtls_pk_rsa_alt_decrypt_func decrypt_func;
|
|
mbedtls_pk_rsa_alt_sign_func sign_func;
|
|
mbedtls_pk_rsa_alt_key_len_func key_len_func;
|
|
} mbedtls_rsa_alt_context;
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_RSA_C)
|
|
extern const mbedtls_pk_info_t mbedtls_rsa_info;
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_C)
|
|
extern const mbedtls_pk_info_t mbedtls_eckey_info;
|
|
extern const mbedtls_pk_info_t mbedtls_eckeydh_info;
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECDSA_C)
|
|
extern const mbedtls_pk_info_t mbedtls_ecdsa_info;
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
|
|
extern const mbedtls_pk_info_t mbedtls_rsa_alt_info;
|
|
#endif
|
|
|
|
#endif /* MBEDTLS_PK_WRAP_H */
|