Class S2K

  • All Implemented Interfaces:
    org.bouncycastle.util.Encodable

    public class S2K
    extends BCPGObject
    Parameter specifier for the PGP string-to-key password based key derivation function.

    In iterated mode, S2K takes a single byte iteration count specifier, which is converted to an actual iteration count using a formula that grows the iteration count exponentially as the byte value increases.

    e.g. 0x01 == 1088 iterations, and 0xFF == 65,011,712 iterations.

    • Field Detail

      • SIMPLE

        public static final int SIMPLE
        Simple key generation. A single non-salted iteration of a hash function
        See Also:
        Constant Field Values
      • SALTED

        public static final int SALTED
        Salted key generation. A single iteration of a hash function with a (unique) salt
        See Also:
        Constant Field Values
      • SALTED_AND_ITERATED

        public static final int SALTED_AND_ITERATED
        Salted and iterated key generation. Multiple iterations of a hash function, with a salt
        See Also:
        Constant Field Values
      • GNU_PROTECTION_MODE_NO_PRIVATE_KEY

        public static final int GNU_PROTECTION_MODE_NO_PRIVATE_KEY
        See Also:
        Constant Field Values
      • GNU_PROTECTION_MODE_DIVERT_TO_CARD

        public static final int GNU_PROTECTION_MODE_DIVERT_TO_CARD
        See Also:
        Constant Field Values
    • Constructor Detail

      • S2K

        public S2K​(int algorithm)
        Constructs a specifier for a simple S2K generation.
        Parameters:
        algorithm - the digest algorithm to use.
      • S2K

        public S2K​(int algorithm,
                   byte[] iv)
        Constructs a specifier for a salted S2K generation.
        Parameters:
        algorithm - the digest algorithm to use.
        iv - the salt to apply to input to the key generation.
      • S2K

        public S2K​(int algorithm,
                   byte[] iv,
                   int itCount)
        Constructs a specifier for a salted and iterated S2K generation.
        Parameters:
        algorithm - the digest algorithm to iterate.
        iv - the salt to apply to input to the key generation.
        itCount - the single byte iteration count specifier.
    • Method Detail

      • getHashAlgorithm

        public int getHashAlgorithm()
        Gets the hash algorithm for this S2K.
      • getIV

        public byte[] getIV()
        Gets the iv/salt to use for the key generation.
      • getIterationCount

        public long getIterationCount()
        Gets the actual (expanded) iteration count.
      • getProtectionMode

        public int getProtectionMode()
        Gets the protection mode - only if GNU_DUMMY_S2K