Example program to test AES-GCM functionality. Used for a workshop

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

pem.h File Reference

pem.h File Reference

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

Go to the source code of this file.

Data Structures

struct  pem_context
 PEM context structure. More...

Functions

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

Copyright (C) 2006-2013, 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.


Function Documentation

void pem_free ( pem_context ctx )

PEM context memory freeing.

Parameters:
ctxcontext to be freed

Definition at line 371 of file pem.c.

void pem_init ( pem_context ctx )

PEM context setup.

Parameters:
ctxcontext to be initialized

Definition at line 50 of file pem.c.

int pem_read_buffer ( 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:
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 (set after header is correctly read, so unless you get POLARSSL_ERR_PEM_BAD_INPUT_DATA or POLARSSL_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

Definition at line 195 of file pem.c.

int 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:
headerheader string to write
footerfooter string to write
der_dataDER data to write
der_lenlength of the DER data
bufbuffer to write to
buf_lenlength of output buffer
olentotal length written / required (if buf_len is not enough)
Returns:
0 on success, or a specific PEM or BASE64 error code. On POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL olen is the required size.

Definition at line 384 of file pem.c.