Class HybridValueParameterSpec

  • All Implemented Interfaces:
    java.security.spec.AlgorithmParameterSpec, javax.security.auth.Destroyable

    public class HybridValueParameterSpec
    extends java.lang.Object
    implements java.security.spec.AlgorithmParameterSpec, javax.security.auth.Destroyable
    SP 800-56C Hybrid Value spec, by default to allow the secret in a key agreement to be created as "Z | T" where T is some other secret value as described in Section 2. If the value doPrepend is set to true the spec will be used to calculate "T | Z" instead.

    Get methods throw IllegalStateException if destroy() is called.

    • Constructor Summary

      Constructors 
      Constructor Description
      HybridValueParameterSpec​(byte[] t, boolean doPrepend, java.security.spec.AlgorithmParameterSpec baseSpec)
      Create a spec with T set to t and the spec for the KDF in the agreement to baseSpec.
      HybridValueParameterSpec​(byte[] t, java.security.spec.AlgorithmParameterSpec baseSpec)
      Create a spec with T set to t and the spec for the KDF in the agreement to baseSpec.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void destroy()
      Destroy this parameter spec, explicitly erasing its contents.
      java.security.spec.AlgorithmParameterSpec getBaseParameterSpec()
      Return the base parameter spec.
      byte[] getT()
      Return a reference to the T value.
      boolean isDestroyed()
      Return true if the destroy() method is called and the contents are erased.
      boolean isPrependedT()
      Return whether or not T should be prepended.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HybridValueParameterSpec

        public HybridValueParameterSpec​(byte[] t,
                                        java.security.spec.AlgorithmParameterSpec baseSpec)
        Create a spec with T set to t and the spec for the KDF in the agreement to baseSpec. Note: the t value is not copied.
        Parameters:
        t - a shared secret to be concatenated with the agreement's Z value.
        baseSpec - the base spec for the agreements KDF.
      • HybridValueParameterSpec

        public HybridValueParameterSpec​(byte[] t,
                                        boolean doPrepend,
                                        java.security.spec.AlgorithmParameterSpec baseSpec)
        Create a spec with T set to t and the spec for the KDF in the agreement to baseSpec. Note: the t value is not copied.
        Parameters:
        t - a shared secret to be concatenated with the agreement's Z value.
        baseSpec - the base spec for the agreements KDF.
    • Method Detail

      • isPrependedT

        public boolean isPrependedT()
        Return whether or not T should be prepended.
        Returns:
        true if T to be prepended, false otherwise.
      • getT

        public byte[] getT()
        Return a reference to the T value.
        Returns:
        a reference to T.
      • getBaseParameterSpec

        public java.security.spec.AlgorithmParameterSpec getBaseParameterSpec()
        Return the base parameter spec.
        Returns:
        base spec to be applied to the KDF.
      • isDestroyed

        public boolean isDestroyed()
        Return true if the destroy() method is called and the contents are erased.
        Specified by:
        isDestroyed in interface javax.security.auth.Destroyable
        Returns:
        true if destroyed, false otherwise.
      • destroy

        public void destroy()
        Destroy this parameter spec, explicitly erasing its contents.
        Specified by:
        destroy in interface javax.security.auth.Destroyable