Class Ssh2PublicKeyEntryDecoder
- java.lang.Object
-
- org.apache.sshd.common.config.keys.loader.ssh2.Ssh2PublicKeyEntryDecoder
-
- All Implemented Interfaces:
KeyTypeNamesSupport,PublicKeyEntryResolver,PublicKeyRawDataDecoder<PublicKey>,PublicKeyRawDataReader<PublicKey>
public class Ssh2PublicKeyEntryDecoder extends Object implements PublicKeyRawDataDecoder<PublicKey>, PublicKeyEntryResolver, PublicKeyRawDataReader<PublicKey>, KeyTypeNamesSupport
Decodes a public key file encoded according to The Secure Shell (SSH) Public Key File Format- Author:
- Apache MINA SSHD Project
-
-
Field Summary
Fields Modifier and Type Field Description static StringBEGIN_MARKERstatic StringEND_MARKERstatic charHEADER_CONTINUATION_INDICATORAccording to RFC-4716 section 3.3:static Ssh2PublicKeyEntryDecoderINSTANCEstatic List<String>START_MARKERSstatic List<String>STOP_MARKERSstatic NavigableSet<String>SUPPORTED_KEY_TYPES-
Fields inherited from interface org.apache.sshd.common.config.keys.PublicKeyEntryResolver
FAILING, IGNORING
-
-
Constructor Summary
Constructors Constructor Description Ssh2PublicKeyEntryDecoder()
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.sshd.common.config.keys.PublicKeyRawDataDecoder
decodePublicKey, decodePublicKey
-
Methods inherited from interface org.apache.sshd.common.config.keys.PublicKeyRawDataReader
readPublicKey, readPublicKey, readPublicKey, readPublicKey, readPublicKey, readPublicKey, readPublicKey, readPublicKey, readPublicKey, readPublicKey
-
-
-
-
Field Detail
-
SUPPORTED_KEY_TYPES
public static final NavigableSet<String> SUPPORTED_KEY_TYPES
-
BEGIN_MARKER
public static final String BEGIN_MARKER
- See Also:
- Constant Field Values
-
END_MARKER
public static final String END_MARKER
- See Also:
- Constant Field Values
-
HEADER_CONTINUATION_INDICATOR
public static final char HEADER_CONTINUATION_INDICATOR
According to RFC-4716 section 3.3:A line is continued if the last character in the line is a "\". If the last character of a line is a "\", then the logical contents of the line are formed by removing the "\" and the line termination characters, and appending the contents of the next line.- See Also:
- Constant Field Values
-
INSTANCE
public static final Ssh2PublicKeyEntryDecoder INSTANCE
-
-
Method Detail
-
getSupportedKeyTypes
public NavigableSet<String> getSupportedKeyTypes()
- Specified by:
getSupportedKeyTypesin interfaceKeyTypeNamesSupport- Returns:
- The case insensitive
NavigableSetofOpenSSHkey type names that are supported by this decoder - e.g.,ssh-rsa, ssh-dss, ecdsa-sha2-nistp384. This is not a single name - e.g., ECDSA keys have several curve names. Caveat: this collection may be un-modifiable...
-
resolve
public PublicKey resolve(SessionContext session, String keyType, byte[] keyData, Map<String,String> headers) throws IOException, GeneralSecurityException
- Specified by:
resolvein interfacePublicKeyEntryResolver- Parameters:
session- TheSessionContextfor invoking this load command - may benullif not invoked within a session context (e.g., offline tool or session unknown).keyType- TheOpenSSHreported key typekeyData- TheOpenSSHencoded key dataheaders- Any headers that may have been available when data was read- Returns:
- The extracted
PublicKey- ignored ifnull - Throws:
IOException- If failed to parse the key dataGeneralSecurityException- If failed to generate the key
-
decodePublicKey
public PublicKey decodePublicKey(SessionContext session, String keyType, InputStream keyData, Map<String,String> headers) throws IOException, GeneralSecurityException
- Specified by:
decodePublicKeyin interfacePublicKeyRawDataDecoder<PublicKey>- Parameters:
session- TheSessionContextfor invoking this command - may benullif not invoked within a session context (e.g., offline tool or session unknown).keyType- The reported / encode key typekeyData- The key data bytes stream positioned after the key type decoding and making sure it is one of the supported typesheaders- Any headers that may have been available when data was read- Returns:
- The decoded
PublicKey - Throws:
IOException- If failed to read from the data streamGeneralSecurityException- If failed to generate the key
-
decodePublicKeyByType
public PublicKey decodePublicKeyByType(SessionContext session, String keyType, InputStream keyData, Map<String,String> headers) throws IOException, GeneralSecurityException
- Specified by:
decodePublicKeyByTypein interfacePublicKeyRawDataDecoder<PublicKey>- Throws:
IOExceptionGeneralSecurityException
-
readPublicKey
public PublicKey readPublicKey(SessionContext session, NamedResource resourceKey, List<String> lines) throws IOException, GeneralSecurityException
- Specified by:
readPublicKeyin interfacePublicKeyRawDataReader<PublicKey>- Throws:
IOExceptionGeneralSecurityException
-
readPublicKey
public PublicKey readPublicKey(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, List<String> lines, Map<String,String> headers) throws IOException, GeneralSecurityException
- Throws:
IOExceptionGeneralSecurityException
-
readPublicKey
public PublicKey readPublicKey(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, byte[] dataBytes, Map<String,String> headers) throws IOException, GeneralSecurityException
- Throws:
IOExceptionGeneralSecurityException
-
separateDataLinesFromHeaders
protected Map.Entry<Map<String,String>,List<String>> separateDataLinesFromHeaders(SessionContext session, NamedResource resourceKey, String startLine, String endLine, List<String> lines) throws IOException, GeneralSecurityException
- Throws:
IOExceptionGeneralSecurityException
-
-