cipher-rc4-0.1.4: Fast RC4 cipher implementation

License | BSD-style
Maintainer | Vincent Hanquez <vincent@snarc.org>
Stability | stable
Portability | Good
Safe Haskell | None
Language | Haskell98

Crypto.Cipher.RC4

Contents

- deprecated types
- deprecated functions, use crypto-cipher-types StreamCipher function

Description

Simple implementation of the RC4 stream cipher. http:/en.wikipedia.orgwiki/RC4

Initial FFI implementation by Peter White peter@janrain.com

Reorganized and simplified to have an opaque context.

Synopsis

- data RC4
- newtype Ctx = Ctx ByteString
- initCtx :: ByteString -> Ctx
- generate :: Ctx -> Int -> (Ctx, ByteString)
- combine :: Ctx -> ByteString -> (Ctx, ByteString)
- encrypt :: Ctx -> ByteString -> (Ctx, ByteString)
- decrypt :: Ctx -> ByteString -> (Ctx, ByteString)

# Documentation

data RC4

RC4 Stream cipher

Instances

Byteable RC4 |
StreamCipher RC4 |
Cipher RC4 |

# deprecated types

newtype Ctx

The encryption context for RC4

Constructors

Ctx ByteString |

Instances

Show Ctx |

# deprecated functions, use crypto-cipher-types StreamCipher function

initCtx

Arguments

:: ByteString | The key
-> Ctx | The RC4 context with the key mixed in

RC4 context initialization.

seed the context with an initial key. the key size need to be adequate otherwise security takes a hit.

generate :: Ctx -> Int -> (Ctx, ByteString)

generate the next len bytes of the rc4 stream without combining it to anything.

combine

Arguments

:: Ctx | rc4 context
-> ByteString | input
-> (Ctx, ByteString) | new rc4 context, and the output

RC4 xor combination of the rc4 stream with an input

encrypt :: Ctx -> ByteString -> (Ctx, ByteString)

Deprecated: use combine instead

decrypt :: Ctx -> ByteString -> (Ctx, ByteString)

Deprecated: use combine instead