homepage: https://github.com/kisom/pkcs7
changelog-type: ''
hash: b26e5181868667abbde3ce17f9a61cf705eb695da073cdf82e1f9dfd6cc11176
test-bench-deps:
  bytestring: ! '>=0.10 && <1.0'
  Cabal: ! '>=1.16 && <1.30'
  base: ! '>4.5 && <5'
  HUnit: ! '>=1.2 && <2.0'
  QuickCheck: ! '>=2.8 && <3.0'
maintainer: coder@kyleisom.net
synopsis: ! 'PKCS #7 padding in Haskell'
changelog: ''
basic-deps:
  bytestring: ! '>=0.10 && <1.0'
  base: ! '>4.5 && <5'
all-versions:
- '1.0.0.0'
- '1.0.0.1'
author: K. Isom
latest: '1.0.0.1'
description-type: markdown
description: ! '# pkcs7


  [![Build Status](https://travis-ci.org/kisom/pkcs7.svg?branch=master)](https://travis-ci.org/kisom/pkcs7)


  This implements the PKCS #7 padding scheme. This scheme is

  defined in [RFC 5652, section 6.3](http://tools.ietf.org/html/rfc5652#section-6.3).


  Strings will be padded out to multiples of the block size; for example,

  a 5-byte string with an 8-byte block size will have three bytes of padding

  added. If the length is already a multiple of the block size, an entire

  block size worth of padding is added.


  The padding bytes are all set to the number of padding bytes. Returning

  to the previous example, the padding string would be three bytes of

  the byte 0x03.


  Unpadding checks the length and padding, and if this is valid, strips off

  the padding.


  The following functions are defined for `String`s:


  + `pad`: apply PKCS #7 padding assuming an AES block size

  + `padN`: apply PKCS #7 padding, specifying the block size

  + `unpad`: remove PKCS #7 padding assuming an AES block size

  + `unpadN`: remove PKCS #7 padding, specifying the block size


  The following functions are defined for `ByteString`s:


  + `padBytes`: apply PKCS #7 padding assuming an AES block size

  + `padBytesN`: apply PKCS #7 padding, specifying the block size

  + `unpadBytes`: remove PKCS #7 padding assuming an AES block size

  + `unpadBytesN`: remove PKCS #7 padding, specifying the block size


  The unpadding functions return a `Maybe a` (where a is either a `String`

  or `ByteString`, depending on the function). If there was a padding error,

  `Nothing` is returned. Otherwise, `Just` the string is returned.


'
license-name: MIT

Update from Hackage at 2015-08-14T04:18:26+0000
Update from Hackage at 2015-08-14T04:18:26+0000
