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
      • decodeECPrivateKeySpec

        public static java.util.AbstractMap.SimpleImmutableEntry<java.security.spec.ECPublicKeySpec,​java.security.spec.ECPrivateKeySpec> decodeECPrivateKeySpec​(java.io.InputStream inputStream,
                                                                                                                                                                      boolean okToClose)
                                                                                                                                                               throws java.io.IOException

        ASN.1 syntax according to rfc5915 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:
        inputStream - The InputStream containing the DER encoded data
        okToClose - true if OK to close the DER stream once parsing complete
        Returns:
        The decoded AbstractMap.SimpleImmutableEntry of ECPublicKeySpec and ECPrivateKeySpec
        Throws:
        java.io.IOException - If failed to to decode the DER stream
      • decodeECPrivateKeySpec

        public static final java.security.spec.ECPrivateKeySpec decodeECPrivateKeySpec​(DERParser parser)
                                                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeECPublicKeyValue

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

        ASN.1 syntax according to rfc5915 is:


        
              publicKey  [1] BIT STRING OPTIONAL
         
        Parameters:
        curve - The ECCurves curve
        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