Class SM9Sm3


  • public class SM9Sm3
    extends java.lang.Object
    The shared SM3-based auxiliary functions of SM9 (GM/T 0044-2016): the cryptographic functions H1 and H2 that map a byte string to an integer in [1, n-1] (GM/T 0044.2, 5.4), and the key derivation function KDF (GM/T 0044.3/0044.4). H_v is SM3 (256-bit output).
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.math.BigInteger h1​(byte[] z, java.math.BigInteger n)
      H1(Z, n): hash-to-range with the 0x01 domain prefix (GM/T 0044.2 5.4.2.2).
      static java.math.BigInteger h2​(byte[] z, java.math.BigInteger n)
      H2(Z, n): hash-to-range with the 0x02 domain prefix (GM/T 0044.2 5.4.2.3).
      static byte[] kdf​(byte[] z, int klenBits)
      The SM9 key derivation function KDF(Z, klen) (GM/T 0044.3/0044.4), a counter-mode construction over SM3 with a 32-bit big-endian counter starting at 1.
      • Methods inherited from class java.lang.Object

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

      • h1

        public static java.math.BigInteger h1​(byte[] z,
                                              java.math.BigInteger n)
        H1(Z, n): hash-to-range with the 0x01 domain prefix (GM/T 0044.2 5.4.2.2).
      • h2

        public static java.math.BigInteger h2​(byte[] z,
                                              java.math.BigInteger n)
        H2(Z, n): hash-to-range with the 0x02 domain prefix (GM/T 0044.2 5.4.2.3).
      • kdf

        public static byte[] kdf​(byte[] z,
                                 int klenBits)
        The SM9 key derivation function KDF(Z, klen) (GM/T 0044.3/0044.4), a counter-mode construction over SM3 with a 32-bit big-endian counter starting at 1. klenBits is the requested output length in bits.