pem.h File Reference
Privacy Enhanced Mail (PEM) decoding.
More...
#include "config.h"
#include <stddef.h>
Go to the source code of this file.
Data Structures |
struct | mbedtls_pem_context |
| PEM context structure. More...
|
Defines |
|
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
PEM context memory freeing.
- Parameters:
-
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.