gnu.crypto.pad

Class TLS1

Implemented Interfaces:
IPad

public class TLS1
extends BasePad

The padding scheme used by the Transport Layer Security protocol, version 1. This padding scheme is used in the block-ciphered struct, e.g.:
 block-ciphered struct {
   opaque content[TLSCompressed.length];
   opaque MAC[CipherSpec.hash_size];
   uint8 padding[GenericBlockCipher.padding_length];
   uint8 padding_length;
 } GenericBlockCipher;
 

Where padding_length is any multiple of cipher_block_size - ((SSLCompressed.length + CipherSpec.hash_size) % cipher_block_size) - 1 that is less than 255. Every byte of the padding must be equal to padding_length. That is, the end of the plaintext is n + 1 copies of the unsigned byte n.

Field Summary

Fields inherited from class gnu.crypto.pad.BasePad

blockSize, name

Constructor Summary

TLS1()

Method Summary

byte[]
pad(byte[] in, int off, int len)
Returns the byte sequence that should be appended to the designated input.
void
setup()
int
unpad(byte[] in, int off, int len)
Returns the number of bytes to discard from a designated input buffer.

Methods inherited from class gnu.crypto.pad.BasePad

init, name, pad, reset, selfTest, setup, unpad

Constructor Details

TLS1

public TLS1()

Method Details

pad

public byte[] pad(byte[] in,
                  int off,
                  int len)
Returns the byte sequence that should be appended to the designated input.
Specified by:
pad in interface IPad
Overrides:
pad in interface BasePad
Parameters:
in - the input buffer containing the bytes to pad.
Returns:
the possibly 0-byte long sequence to be appended to the designated input.

setup

public void setup()
Overrides:
setup in interface BasePad

unpad

public int unpad(byte[] in,
                 int off,
                 int len)
            throws WrongPaddingException
Returns the number of bytes to discard from a designated input buffer.
Specified by:
unpad in interface IPad
Overrides:
unpad in interface BasePad
Parameters:
in - the input buffer containing the bytes to unpad.
Returns:
the number of bytes to discard, to the left of index position offset + length in in. In other words, if the return value of a successful invocation of this method is result, then the unpadded byte sequence will be offset + length - result bytes in in, starting from index position offset.
Throws:
WrongPaddingException - if the data is not terminated with the expected padding bytes.

Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.