Class OpenSSHKeyPairResourceParser

    • Field Detail

      • BEGINNERS

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

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

        private static final byte[] AUTH_MAGIC_BYTES
      • BY_KEY_TYPE_DECODERS_MAP

        private static final java.util.Map<java.lang.String,​PrivateKeyEntryDecoder<?,​?>> BY_KEY_TYPE_DECODERS_MAP
      • BY_KEY_CLASS_DECODERS_MAP

        private static final java.util.Map<java.lang.Class<?>,​PrivateKeyEntryDecoder<?,​?>> BY_KEY_CLASS_DECODERS_MAP
    • Constructor Detail

      • OpenSSHKeyPairResourceParser

        public OpenSSHKeyPairResourceParser()
    • 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
      • resolveKdfOptions

        protected OpenSSHKdfOptions resolveKdfOptions​(SessionContext session,
                                                      NamedResource resourceKey,
                                                      java.lang.String beginMarker,
                                                      java.lang.String endMarker,
                                                      java.io.InputStream stream,
                                                      java.util.Map<java.lang.String,​java.lang.String> headers)
                                               throws java.io.IOException,
                                                      java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • readPublicKey

        protected java.security.PublicKey readPublicKey​(SessionContext session,
                                                        NamedResource resourceKey,
                                                        OpenSSHParserContext context,
                                                        java.io.InputStream stream,
                                                        java.util.Map<java.lang.String,​java.lang.String> headers)
                                                 throws java.io.IOException,
                                                        java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • readPrivateKeys

        protected java.util.List<java.security.KeyPair> readPrivateKeys​(SessionContext session,
                                                                        NamedResource resourceKey,
                                                                        OpenSSHParserContext context,
                                                                        java.util.Collection<? extends java.security.PublicKey> publicKeys,
                                                                        FilePasswordProvider passwordProvider,
                                                                        java.io.InputStream stream)
                                                                 throws java.io.IOException,
                                                                        java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • readPrivateKey

        protected java.util.Map.Entry<java.security.PrivateKey,​java.lang.String> readPrivateKey​(SessionContext session,
                                                                                                      NamedResource resourceKey,
                                                                                                      OpenSSHParserContext context,
                                                                                                      java.lang.String keyType,
                                                                                                      FilePasswordProvider passwordProvider,
                                                                                                      java.io.InputStream stream)
                                                                                               throws java.io.IOException,
                                                                                                      java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • validateStreamMagicMarker

        protected <S extends java.io.InputStream> S validateStreamMagicMarker​(SessionContext session,
                                                                              NamedResource resourceKey,
                                                                              S stream)
                                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • getPrivateKeyEntryDecoder

        public static PrivateKeyEntryDecoder<?,​?> getPrivateKeyEntryDecoder​(java.lang.String keyType)
        Parameters:
        keyType - The OpenSSH key type string - e.g., ssh-rsa, ssh-dss - ignored if null/empty
        Returns:
        The registered PrivateKeyEntryDecoder or {code null} if not found
      • getPrivateKeyEntryDecoder

        public static PrivateKeyEntryDecoder<?,​?> getPrivateKeyEntryDecoder​(java.lang.Class<?> keyType)
        Parameters:
        keyType - The key Class - ignored if null or not a Key compatible type
        Returns:
        The registered PrivateKeyEntryDecoder or {code null} if no match found