mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-03-04 16:09:50 +00:00
Remove cryptography related files and a few utility header files that are shared between Mbed TLS and Mbed Crypto. Mbed TLS will use an Mbed Crypto sourced version of each of these header files in order to ease the maintenance burden of both libraries, and to make it easier to keep Mbed TLS and Mbed Crypto in sync. As part of removing cryptography related files, tell Doxygen to source information from the removed the headers, so that it will consider them for inclusion within Doxygen output. Later, as part of the Mbed TLS 3.0 (API breaking version), we'll restructure the organization of the 3 libraries a bit, to move some things out of Mbed Crypto that don't belong there. Candidates of not belonging in Mbed Crypto, but are in libmbedcrypto.so for legacy reasons: - asn1.h - asn1write.h - base64.h - memory_buffer_alloc.h - platform.h - platform_time.h - platform_util.h - threading.h - timing.h - version.h
99 lines
3.2 KiB
C
99 lines
3.2 KiB
C
/**
|
|
* \file base64.h
|
|
*
|
|
* \brief RFC 1521 base64 encoding/decoding
|
|
*/
|
|
/*
|
|
* 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_BASE64_H
|
|
#define MBEDTLS_BASE64_H
|
|
|
|
#if !defined(MBEDTLS_CONFIG_FILE)
|
|
#include "mbedtls/config.h"
|
|
#else
|
|
#include MBEDTLS_CONFIG_FILE
|
|
#endif
|
|
|
|
#include <stddef.h>
|
|
|
|
#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL -0x002A /**< Output buffer too small. */
|
|
#define MBEDTLS_ERR_BASE64_INVALID_CHARACTER -0x002C /**< Invalid character in input. */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* \brief Encode a buffer into base64 format
|
|
*
|
|
* \param dst destination buffer
|
|
* \param dlen size of the destination buffer
|
|
* \param olen number of bytes written
|
|
* \param src source buffer
|
|
* \param slen amount of data to be encoded
|
|
*
|
|
* \return 0 if successful, or MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL.
|
|
* *olen is always updated to reflect the amount
|
|
* of data that has (or would have) been written.
|
|
* If that length cannot be represented, then no data is
|
|
* written to the buffer and *olen is set to the maximum
|
|
* length representable as a size_t.
|
|
*
|
|
* \note Call this function with dlen = 0 to obtain the
|
|
* required buffer size in *olen
|
|
*/
|
|
int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen,
|
|
const unsigned char *src, size_t slen );
|
|
|
|
/**
|
|
* \brief Decode a base64-formatted buffer
|
|
*
|
|
* \param dst destination buffer (can be NULL for checking size)
|
|
* \param dlen size of the destination buffer
|
|
* \param olen number of bytes written
|
|
* \param src source buffer
|
|
* \param slen amount of data to be decoded
|
|
*
|
|
* \return 0 if successful, MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL, or
|
|
* MBEDTLS_ERR_BASE64_INVALID_CHARACTER if the input data is
|
|
* not correct. *olen is always updated to reflect the amount
|
|
* of data that has (or would have) been written.
|
|
*
|
|
* \note Call this function with *dst = NULL or dlen = 0 to obtain
|
|
* the required buffer size in *olen
|
|
*/
|
|
int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen,
|
|
const unsigned char *src, size_t slen );
|
|
|
|
#if defined(MBEDTLS_SELF_TEST)
|
|
/**
|
|
* \brief Checkup routine
|
|
*
|
|
* \return 0 if successful, or 1 if the test failed
|
|
*/
|
|
int mbedtls_base64_self_test( int verbose );
|
|
|
|
#endif /* MBEDTLS_SELF_TEST */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* base64.h */
|