Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Cryptix V3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## cryptix.provider.padding
Class PKCS5

    java.lang.Object
      |
      +--java.security.IJCE_Traceable
            |
            +--java.security.PaddingScheme
                  |
                  +--cryptix.provider.padding.PKCS5

public class PKCS5
extends PaddingScheme

A class for padding cipher data according to the following scheme, described in section 6.2 of RSA Data Security, Inc.'s PKCS #5 standard:

        ...

An IllegalBlockSizeException is thrown (by the Cipher class) if the block size is not 8 bytes.

References:

1. PKCS#5: ... An RSA Laboratories Technical Note; Version 1.5; Revised November 1, 1993.

Copyright © 1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.6 $

Since:
  Cryptix 2.2.2
Author:
  Raif S. Naffah, David Hopwood

Fields inherited from class java.security.PaddingScheme
`blockSize`

Constructor Summary
`PKCS5()` Creates a PKCS5 object.

Method Summary
`protected boolean` | `engineIsValidBlockSize(int size)` SPI: Returns true if size is a valid block size (in bytes) for this algorithm.
`protected int` | `enginePad(byte[] in, int offset, int length)` Pads a given array of bytes.
`protected int` | `engineUnpad(byte[] in, int offset, int length)` Given the specified subarray of bytes that includes padding bytes, returns the index indicating where padding starts.

Methods inherited from class java.security.PaddingScheme
`clone, engineGetParameter, engineSetBlockSize, engineSetParameter, getAlgorithm, getAlgorithms, getAlgorithms, getBlockSize, getInstance, getInstance, getParameter, pad, paddingScheme, padLength, setParameter, toString, unpad`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### PKCS5

    public PKCS5()

  Creates a PKCS5 object.

Method Detail

### enginePad

    protected int enginePad(byte[] in,
                            int offset,
                            int length)

  Pads a given array of bytes. The padding is written to the same buffer that is used for input (in). When this method returns, the padded block will be stored at `in[offset+length..offset+7]`.
  Overrides:
    enginePad in class PaddingScheme
  Parameters:
    `in` - the buffer containing the incomplete block.
    `offset` - the offset into the `in` buffer of the first byte in the group of bytes to be padded.
    `length` - the number of bytes from the `in` buffer, starting at `offset`, that need to be padded.

### engineUnpad

    protected int engineUnpad(byte[] in,
                              int offset,
                              int length)

  Given the specified subarray of bytes that includes padding bytes, returns the index indicating where padding starts.

  For PKCS#5, the padding bytes all have value `8 - (length % 8)`. Hence to find the number of added bytes, it's enough to consider the last byte value of the padded message.

  Overrides:
    engineUnpad in class PaddingScheme
  Parameters:
    `in` - the buffer containing the bytes.
    `offset` - the offset into the in buffer of the first byte in the block.
    `length` - the length of the block in bytes.
  Returns:
    the index into the in buffer indicating where the padding starts.
  Throws:
    CryptixException - if the number of padding bytes is invalid.

### engineIsValidBlockSize

    protected boolean engineIsValidBlockSize(int size)

  SPI: Returns true if size is a valid block size (in bytes) for this algorithm.

  For PKCS#5 padding, the only valid size is 8 bytes.

  Overrides:
    engineIsValidBlockSize in class PaddingScheme

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Cryptix V3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (C) 1995-2000 The Cryptix Foundation Ltd. All rights reserved.