For the latest news and information visit The GNU Crypto project

## gnu.crypto.key.dss
Class DSSKeyPairRawCodec

    java.lang.Object
      |
      +--gnu.crypto.key.dss.DSSKeyPairRawCodec

All Implemented Interfaces:
  IKeyPairCodec

public class DSSKeyPairRawCodec
extends java.lang.Object
implements IKeyPairCodec

An object that implements the `IKeyPairCodec` operations for the Raw format to use with DSS keypairs.

Field Summary

Fields inherited from interface gnu.crypto.key.IKeyPairCodec
`RAW_FORMAT`

Constructor Summary
`DSSKeyPairRawCodec()`

Method Summary
`java.security.PrivateKey` `decodePrivateKey(byte[] k)` Decodes an instance of an external private key into its native Java representation.
`java.security.PublicKey` `decodePublicKey(byte[] k)` Decodes an instance of an external public key into its native Java representation.
`byte[]` `encodePrivateKey(java.security.PrivateKey key)` Returns the encoded form of the designated DSS (Digital Signature Standard) private key according to the Raw format supported by this library.
`byte[]` `encodePublicKey(java.security.PublicKey key)` Returns the encoded form of the designated DSS (Digital Signature Standard) public key according to the Raw format supported by this library.
`int` `getFormatID()` Returns the unique identifier (within this library) of the format used to externalise public and private keys.

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

Constructor Detail

### DSSKeyPairRawCodec

    public DSSKeyPairRawCodec()

Method Detail

### getFormatID

    public int getFormatID()

  Description copied from interface: `IKeyPairCodec`

  Returns the unique identifier (within this library) of the format used to externalise public and private keys.

  Specified by:
    `getFormatID` in interface `IKeyPairCodec`
  Returns:
    the identifier of the format, the object supports.

### encodePublicKey

    public byte[] encodePublicKey(java.security.PublicKey key)

  Returns the encoded form of the designated DSS (Digital Signature Standard) public key according to the Raw format supported by this library.

  The Raw format for a DSA public key, in this implementation, is a byte sequence consisting of the following:

  1. 4-byte magic consisting of the value of the literal `Registry.MAGIC_RAW_DSS_PUBLIC_KEY`,
  3. 1-byte version consisting of the constant: 0x01,
  4. 4-byte count of following bytes representing the DSA parameter `p` in internet order,
  5. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `p`,
  6. 4-byte count of following bytes representing the DSA parameter `q`,
  7. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `q`,
  8. 4-byte count of following bytes representing the DSA parameter `g`,
  9. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `g`,
  10. 4-byte count of following bytes representing the DSA parameter `y`,
  11. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `y`,

  Specified by:
    `encodePublicKey` in interface `IKeyPairCodec`
  Parameters:
    `key` - the key to encode.
  Returns:
    the Raw format encoding of the designated key.
  Throws:
    `java.lang.IllegalArgumentException` - if the designated key is not a DSS (Digital Signature Standard) one.
  See Also:
    `Registry.MAGIC_RAW_DSS_PUBLIC_KEY`

### decodePublicKey

    public java.security.PublicKey decodePublicKey(byte[] k)

  Description copied from interface: `IKeyPairCodec`

  Decodes an instance of an external public key into its native Java representation.

  Specified by:
    `decodePublicKey` in interface `IKeyPairCodec`
  Parameters:
    `k` - the source of the externalised key to decode.
  Returns:
    a concrete instance of a public key, reconstructed from the designated input.

### encodePrivateKey

    public byte[] encodePrivateKey(java.security.PrivateKey key)

  Returns the encoded form of the designated DSS (Digital Signature Standard) private key according to the Raw format supported by this library.

  The Raw format for a DSA private key, in this implementation, is a byte sequence consisting of the following:

  1. 4-byte magic consisting of the value of the literal `Registry.MAGIC_RAW_DSS_PRIVATE_KEY`,
  3. 1-byte version consisting of the constant: 0x01,
  4. 4-byte count of following bytes representing the DSA parameter `p` in internet order,
  5. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `p`,
  6. 4-byte count of following bytes representing the DSA parameter `q`,
  7. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `q`,
  8. 4-byte count of following bytes representing the DSA parameter `g`,
  9. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `g`,
  10. 4-byte count of following bytes representing the DSA parameter `x`,
  11. n-bytes representation of a `BigInteger` obtained by invoking the `toByteArray()` method on the DSA parameter `x`,

  Specified by:
    `encodePrivateKey` in interface `IKeyPairCodec`
  Parameters:
    `key` - the key to encode.
  Returns:
    the Raw format encoding of the designated key.
  Throws:
    `java.lang.IllegalArgumentException` - if the designated key is not a DSS (Digital Signature Standard) one.

### decodePrivateKey

    public java.security.PrivateKey decodePrivateKey(byte[] k)

  Description copied from interface: `IKeyPairCodec`

  Decodes an instance of an external private key into its native Java representation.

  Specified by:
    `decodePrivateKey` in interface `IKeyPairCodec`
  Parameters:
    `k` - the source of the externalised key to decode.
  Returns:
    a concrete instance of a private key, reconstructed from the designated input.

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.