pem.h File Reference

Privacy Enhanced Mail (PEM) decoding. More...

#include "config.h"
#include <stddef.h>
Include dependency graph for pem.h:

Go to the source code of this file.

Data Structures

struct  mbedtls_pem_context
 PEM context structure. More...

Defines

PEM Error codes

These error codes are returned in case of errors reading the PEM data.



#define MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT   -0x1080
#define MBEDTLS_ERR_PEM_INVALID_DATA   -0x1100
#define MBEDTLS_ERR_PEM_ALLOC_FAILED   -0x1180
#define MBEDTLS_ERR_PEM_INVALID_ENC_IV   -0x1200
#define MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG   -0x1280
#define MBEDTLS_ERR_PEM_PASSWORD_REQUIRED   -0x1300
#define MBEDTLS_ERR_PEM_PASSWORD_MISMATCH   -0x1380
#define MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE   -0x1400
#define MBEDTLS_ERR_PEM_BAD_INPUT_DATA   -0x1480

Functions

void mbedtls_pem_init (mbedtls_pem_context *ctx)
 PEM context setup.
int mbedtls_pem_read_buffer (mbedtls_pem_context *ctx, const char *header, const char *footer, const unsigned char *data, const unsigned char *pwd, size_t pwdlen, size_t *use_len)
 Read a buffer for PEM information and store the resulting data into the specified context buffers.
void mbedtls_pem_free (mbedtls_pem_context *ctx)
 PEM context memory freeing.
int mbedtls_pem_write_buffer (const char *header, const char *footer, const unsigned char *der_data, size_t der_len, unsigned char *buf, size_t buf_len, size_t *olen)
 Write a buffer of PEM information from a DER encoded buffer.

Detailed Description

Privacy Enhanced Mail (PEM) decoding.

Definition in file pem.h.


Define Documentation

#define MBEDTLS_ERR_PEM_ALLOC_FAILED   -0x1180

Failed to allocate memory.

Definition at line 70 of file pem.h.

#define MBEDTLS_ERR_PEM_BAD_INPUT_DATA   -0x1480

Bad input parameters to function.

Definition at line 76 of file pem.h.

#define MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE   -0x1400

Unavailable feature, e.g. hashing/encryption combination.

Definition at line 75 of file pem.h.

#define MBEDTLS_ERR_PEM_INVALID_DATA   -0x1100

PEM string is not as expected.

Definition at line 69 of file pem.h.

#define MBEDTLS_ERR_PEM_INVALID_ENC_IV   -0x1200

RSA IV is not in hex-format.

Definition at line 71 of file pem.h.

#define MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT   -0x1080

No PEM header or footer found.

Definition at line 68 of file pem.h.

#define MBEDTLS_ERR_PEM_PASSWORD_MISMATCH   -0x1380

Given private key password does not allow for correct decryption.

Definition at line 74 of file pem.h.

#define MBEDTLS_ERR_PEM_PASSWORD_REQUIRED   -0x1300

Private key password can't be empty.

Definition at line 73 of file pem.h.

#define MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG   -0x1280

Unsupported key encryption algorithm.

Definition at line 72 of file pem.h.


Function Documentation

void mbedtls_pem_free ( mbedtls_pem_context ctx  ) 

PEM context memory freeing.

Parameters:
ctx context to be freed
void mbedtls_pem_init ( mbedtls_pem_context ctx  ) 

PEM context setup.

Parameters:
ctx context to be initialized
int mbedtls_pem_read_buffer ( mbedtls_pem_context ctx,
const char *  header,
const char *  footer,
const unsigned char *  data,
const unsigned char *  pwd,
size_t  pwdlen,
size_t *  use_len 
)

Read a buffer for PEM information and store the resulting data into the specified context buffers.

Parameters:
ctx context to use
header header string to seek and expect
footer footer string to seek and expect
data source data to look in (must be nul-terminated)
pwd password for decryption (can be NULL)
pwdlen length of password
use_len destination for total length used (set after header is correctly read, so unless you get MBEDTLS_ERR_PEM_BAD_INPUT_DATA or MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT, use_len is the length to skip)
Note:
Attempts to check password correctness by verifying if the decrypted text starts with an ASN.1 sequence of appropriate length
Returns:
0 on success, or a specific PEM error code
int mbedtls_pem_write_buffer ( const char *  header,
const char *  footer,
const unsigned char *  der_data,
size_t  der_len,
unsigned char *  buf,
size_t  buf_len,
size_t *  olen 
)

Write a buffer of PEM information from a DER encoded buffer.

Parameters:
header header string to write
footer footer string to write
der_data DER data to write
der_len length of the DER data
buf buffer to write to
buf_len length of output buffer
olen total length written / required (if buf_len is not enough)
Returns:
0 on success, or a specific PEM or BASE64 error code. On MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL olen is the required size.

Generated on 10 Aug 2020 for mbed TLS v2.7.16 by  doxygen 1.6.1