Class ECDSAPEMResourceKeyPairParser

    • Constructor Detail

      • ECDSAPEMResourceKeyPairParser

        public ECDSAPEMResourceKeyPairParser()
    • Method Detail

      • extractKeyPairs

        public java.util.Collection<java.security.KeyPair> extractKeyPairs​(SessionContext session,
                                                                           NamedResource resourceKey,
                                                                           java.lang.String beginMarker,
                                                                           java.lang.String endMarker,
                                                                           FilePasswordProvider passwordProvider,
                                                                           java.io.InputStream stream,
                                                                           java.util.Map<java.lang.String,​java.lang.String> headers)
                                                                    throws java.io.IOException,
                                                                           java.security.GeneralSecurityException
        Specified by:
        extractKeyPairs in class AbstractKeyPairResourceParser
        Parameters:
        session - The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool or session unknown).
        resourceKey - A hint as to the origin of the text lines
        beginMarker - The line containing the begin marker
        endMarker - The line containing the end marker
        passwordProvider - The FilePasswordProvider to use in case the data is encrypted - may be null if no encrypted
        stream - The decoded data InputStream
        headers - Any headers that may have been available when data was read
        Returns:
        The extracted KeyPairs - may be null/empty if none.
        Throws:
        java.io.IOException - If failed to parse the data
        java.security.GeneralSecurityException - If failed to generate the keys
      • parseECKeyPair

        public static java.security.KeyPair parseECKeyPair​(java.io.InputStream inputStream,
                                                           boolean okToClose)
                                                    throws java.io.IOException,
                                                           java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • parseECKeyPair

        public static java.security.KeyPair parseECKeyPair​(ECCurves curve,
                                                           DERParser parser)
                                                    throws java.io.IOException,
                                                           java.security.GeneralSecurityException
        Parameters:
        curve - The curve represented by this data (in case it was optional and somehow known externally) if null then it is assumed to be part of the parsed data. then it is assumed to be part of the data.
        parser - The DERParser for the data
        Returns:
        The parsed KeyPair
        Throws:
        java.io.IOException - If failed to parse the data
        java.security.GeneralSecurityException - If failed to generate the keys
      • decodeECPrivateKeySpec

        public static java.util.Map.Entry<java.security.spec.ECPublicKeySpec,​java.security.spec.ECPrivateKeySpec> decodeECPrivateKeySpec​(ECCurves curve,
                                                                                                                                               ASN1Object sequence)
                                                                                                                                        throws java.io.IOException

        ASN.1 syntax according to RFC 5915 is:


         
         ECPrivateKey ::= SEQUENCE {
              version        INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
              privateKey     OCTET STRING,
              parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
              publicKey  [1] BIT STRING OPTIONAL
         }
         
         

        ECParameters syntax according to RFC5480:


         
         ECParameters ::= CHOICE {
              namedCurve         OBJECT IDENTIFIER
              -- implicitCurve   NULL
              -- specifiedCurve  SpecifiedECDomain
         }
         
         
        Parameters:
        curve - The curve represented by this data (in case it was optional and somehow known externally) if null then it is assumed to be part of the parsed data.
        sequence - The ASN1Object sequence containing the DER encoded data
        Returns:
        The decoded AbstractMap.SimpleImmutableEntry of ECPublicKeySpec and ECPrivateKeySpec
        Throws:
        java.io.IOException - If failed to to decode the DER stream
      • decodeECPrivateKeySpec

        public static java.util.Map.Entry<java.security.spec.ECPrivateKeySpec,​ASN1Object> decodeECPrivateKeySpec​(ECCurves curve,
                                                                                                                       DERParser parser)
                                                                                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • parseCurveParameter

        public static java.util.Map.Entry<ECCurves,​ASN1Object> parseCurveParameter​(DERParser parser)
                                                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • parseCurveParameter

        public static java.util.Map.Entry<ECCurves,​ASN1Object> parseCurveParameter​(ASN1Object paramsObject)
                                                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeECPublicKeyValue

        public static final java.security.spec.ECPoint decodeECPublicKeyValue​(DERParser parser)
                                                                       throws java.io.IOException

        ASN.1 syntax according to rfc5915 is:


         
              publicKey  [1] BIT STRING OPTIONAL
         
         
        Parameters:
        parser - The DERParser assumed to be positioned at the start of the data
        Returns:
        The encoded ECPoint
        Throws:
        java.io.IOException - If failed to create the point
      • decodeECPublicKeyValue

        public static final java.security.spec.ECPoint decodeECPublicKeyValue​(ASN1Object dataObject)
                                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeECPointData

        public static final java.security.spec.ECPoint decodeECPointData​(ASN1Object pointData)
                                                                  throws java.io.IOException
        Throws:
        java.io.IOException