Class PKCS8PEMResourceKeyPairParser

    • Field Detail

      • BEGINNERS

        public static final java.util.List<java.lang.String> BEGINNERS
      • ENDERS

        public static final java.util.List<java.lang.String> ENDERS
    • Constructor Detail

      • PKCS8PEMResourceKeyPairParser

        public PKCS8PEMResourceKeyPairParser()
    • 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
      • decodePEMPrivateKeyPKCS8

        public static java.security.PrivateKey decodePEMPrivateKeyPKCS8​(java.util.List<java.lang.Integer> oidAlgorithm,
                                                                        byte[] keyBytes)
                                                                 throws java.security.GeneralSecurityException
        Throws:
        java.security.GeneralSecurityException
      • decodePEMPrivateKeyPKCS8

        public static java.security.PrivateKey decodePEMPrivateKeyPKCS8​(java.lang.String oid,
                                                                        byte[] keyBytes)
                                                                 throws java.security.GeneralSecurityException
        Throws:
        java.security.GeneralSecurityException
      • getPKCS8AlgorithmIdentifier

        public static java.util.List<java.lang.Integer> getPKCS8AlgorithmIdentifier​(byte[] input)
                                                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • getPKCS8AlgorithmIdentifier

        public static java.util.List<java.lang.Integer> getPKCS8AlgorithmIdentifier​(DERParser parser)
                                                                             throws java.io.IOException
        According to the standard:
        
         PrivateKeyInfo ::= SEQUENCE {
                  version Version,
                  privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
                  privateKey PrivateKey,
                  attributes [0] IMPLICIT Attributes OPTIONAL
          }
        
         Version ::= INTEGER
         PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
         PrivateKey ::= OCTET STRING
         Attributes ::= SET OF Attribute
         AlgorithmIdentifier ::= SEQUENCE {
              algorithm       OBJECT IDENTIFIER,
              parameters      ANY DEFINED BY algorithm OPTIONAL
         }
         
        Parameters:
        parser - The DERParser to use
        Returns:
        The PKCS8 algorithm OID
        Throws:
        java.io.IOException - If malformed data
        See Also:
        getPKCS8AlgorithmIdentifier(ASN1Object)
      • getPKCS8AlgorithmIdentifier

        public static java.util.List<java.lang.Integer> getPKCS8AlgorithmIdentifier​(ASN1Object privateKeyInfo)
                                                                             throws java.io.IOException
        Throws:
        java.io.IOException