PolarSSL v1.1.4
Data Structures | Functions
pem.h File Reference

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

#include <string.h>
Include dependency graph for pem.h:

Go to the source code of this file.

Data Structures

struct  pem_context
 PEM context structure. More...

Defines

PEM Error codes

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

#define POLARSSL_ERR_PEM_NO_HEADER_PRESENT   -0x1080
 No PEM header found.
#define POLARSSL_ERR_PEM_INVALID_DATA   -0x1100
 PEM string is not as expected.
#define POLARSSL_ERR_PEM_MALLOC_FAILED   -0x1180
 Failed to allocate memory.
#define POLARSSL_ERR_PEM_INVALID_ENC_IV   -0x1200
 RSA IV is not in hex-format.
#define POLARSSL_ERR_PEM_UNKNOWN_ENC_ALG   -0x1280
 Unsupported key encryption algorithm.
#define POLARSSL_ERR_PEM_PASSWORD_REQUIRED   -0x1300
 Private key password can't be empty.
#define POLARSSL_ERR_PEM_PASSWORD_MISMATCH   -0x1380
 Given private key password does not allow for correct decryption.
#define POLARSSL_ERR_PEM_FEATURE_UNAVAILABLE   -0x1400
 Unavailable feature, e.g.

Functions

void pem_init (pem_context *ctx)
 PEM context setup.
int pem_read_buffer (pem_context *ctx, char *header, 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 pem_free (pem_context *ctx)
 PEM context memory freeing.

Detailed Description

Privacy Enhanced Mail (PEM) decoding.

Copyright (C) 2006-2010, Brainspark B.V.

This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>

All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file pem.h.


Define Documentation

Unavailable feature, e.g.

hashing/encryption combination.

Definition at line 45 of file pem.h.

#define POLARSSL_ERR_PEM_INVALID_DATA   -0x1100

PEM string is not as expected.

Definition at line 39 of file pem.h.

#define POLARSSL_ERR_PEM_INVALID_ENC_IV   -0x1200

RSA IV is not in hex-format.

Definition at line 41 of file pem.h.

#define POLARSSL_ERR_PEM_MALLOC_FAILED   -0x1180

Failed to allocate memory.

Definition at line 40 of file pem.h.

#define POLARSSL_ERR_PEM_NO_HEADER_PRESENT   -0x1080

No PEM header found.

Definition at line 38 of file pem.h.

#define POLARSSL_ERR_PEM_PASSWORD_MISMATCH   -0x1380

Given private key password does not allow for correct decryption.

Definition at line 44 of file pem.h.

#define POLARSSL_ERR_PEM_PASSWORD_REQUIRED   -0x1300

Private key password can't be empty.

Definition at line 43 of file pem.h.

#define POLARSSL_ERR_PEM_UNKNOWN_ENC_ALG   -0x1280

Unsupported key encryption algorithm.

Definition at line 42 of file pem.h.


Function Documentation

void pem_free ( pem_context ctx)

PEM context memory freeing.

Parameters:
ctxcontext to be freed
void pem_init ( pem_context ctx)

PEM context setup.

Parameters:
ctxcontext to be initialized
int pem_read_buffer ( pem_context ctx,
char *  header,
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:
ctxcontext to use
headerheader string to seek and expect
footerfooter string to seek and expect
datasource data to look in
pwdpassword for decryption (can be NULL)
pwdlenlength of password
use_lendestination for total length used
Returns:
0 on success, ior a specific PEM error code