Enum ECCurves

    • Enum Constant Detail

      • nistp256

        public static final ECCurves nistp256
      • nistp384

        public static final ECCurves nistp384
      • nistp521

        public static final ECCurves nistp521
    • Field Detail

      • VALUES

        public static final java.util.Set<ECCurves> VALUES
        A Set of all the known curves
      • NAMES

        public static final java.util.NavigableSet<java.lang.String> NAMES
        A Set of all the known curves names
      • KEY_TYPES

        public static final java.util.NavigableSet<java.lang.String> KEY_TYPES
        A Set of all the known curves key types
      • BY_KEY_SIZE

        public static final java.util.Comparator<ECCurves> BY_KEY_SIZE
      • SORTED_KEY_SIZE

        public static final java.util.List<ECCurves> SORTED_KEY_SIZE
      • name

        private final java.lang.String name
      • keyType

        private final java.lang.String keyType
      • oidString

        private final java.lang.String oidString
      • oidValue

        private final java.util.List<java.lang.Integer> oidValue
      • params

        private final java.security.spec.ECParameterSpec params
      • keySize

        private final int keySize
      • numOctets

        private final int numOctets
    • Constructor Detail

      • ECCurves

        private ECCurves​(java.lang.String name,
                         int[] oid,
                         java.security.spec.ECParameterSpec params,
                         int numOctets,
                         DigestFactory digestFactory)
    • Method Detail

      • values

        public static ECCurves[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (ECCurves c : ECCurves.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static ECCurves valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • getName

        public final java.lang.String getName()
        Specified by:
        getName in interface NamedResource
        Returns:
        The resource name
      • getOID

        public final java.lang.String getOID()
      • getOIDValue

        public final java.util.List<java.lang.Integer> getOIDValue()
      • getKeyType

        public final java.lang.String getKeyType()
        Specified by:
        getKeyType in interface KeyTypeIndicator
        Returns:
        The SSH key type name - e.g., "ssh-rsa", "sshd-dss" etc.
      • getParameters

        public final java.security.spec.ECParameterSpec getParameters()
      • getKeySize

        public final int getKeySize()
        Specified by:
        getKeySize in interface KeySizeIndicator
        Returns:
        The number of bits used in the key
      • getNumPointOctets

        public final int getNumPointOctets()
        Returns:
        The number of octets used to represent the point(s) for the curve
      • getDigestForParams

        public final Digest getDigestForParams()
        Returns:
        The Digest to use when hashing the curve's parameters
      • fromKeyType

        public static ECCurves fromKeyType​(java.lang.String type)
        Parameters:
        type - The key type value - ignored if null/empty
        Returns:
        The matching ECCurves constant - null if no match found case insensitive
      • fromCurveName

        public static ECCurves fromCurveName​(java.lang.String name)
        Parameters:
        name - The curve name (case insensitive - ignored if null/empty
        Returns:
        The matching ECCurves instance - null if no match found
      • fromECKey

        public static ECCurves fromECKey​(java.security.interfaces.ECKey key)
        Parameters:
        key - The ECKey - ignored if null
        Returns:
        The matching ECCurves instance - null if no match found
      • fromCurveSize

        public static ECCurves fromCurveSize​(int keySize)
        Parameters:
        keySize - The key size (in bits)
        Returns:
        The matching ECCurves value - null if no match found
      • fromOIDValue

        public static ECCurves fromOIDValue​(java.util.List<? extends java.lang.Number> oid)
      • fromOID

        public static ECCurves fromOID​(java.lang.String oid)
      • getCurveSize

        public static int getCurveSize​(java.security.spec.ECParameterSpec params)
        Parameters:
        params - The curve's ECParameterSpec
        Returns:
        The curve's key size in bits
        Throws:
        java.lang.IllegalArgumentException - if invalid parameters provided
      • encodeECPoint

        public static byte[] encodeECPoint​(java.security.spec.ECPoint group,
                                           java.security.spec.ECParameterSpec params)
      • encodeECPoint

        public static byte[] encodeECPoint​(java.security.spec.ECPoint group,
                                           java.security.spec.EllipticCurve curve)
      • removeLeadingZeroes

        private static byte[] removeLeadingZeroes​(byte[] input)
      • octetStringToInteger

        public static java.math.BigInteger octetStringToInteger​(byte... octets)
        Converts the given octet string (defined by ASN.1 specifications) to a BigInteger As octet strings always represent positive integers, a zero-byte is prepended to the given array if necessary (if is MSB equal to 1), then this is converted to BigInteger The conversion is defined in the Section 2.3.8
        Parameters:
        octets - - octet string bytes to be converted
        Returns:
        The BigInteger representation of the octet string
      • octetStringToEcPoint

        public static java.security.spec.ECPoint octetStringToEcPoint​(byte... octets)
      • findFirstNonZeroIndex

        private static int findFirstNonZeroIndex​(byte... octets)