Class ECDSAPEMResourceKeyPairParser
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.common.config.keys.loader.AbstractKeyPairResourceParser
-
- org.apache.sshd.common.config.keys.loader.pem.AbstractPEMResourceKeyPairParser
-
- org.apache.sshd.common.config.keys.loader.pem.ECDSAPEMResourceKeyPairParser
-
- All Implemented Interfaces:
AlgorithmNameProvider,KeyPairResourceLoader,KeyPairResourceParser,KeyPairPEMResourceParser
public class ECDSAPEMResourceKeyPairParser extends AbstractPEMResourceKeyPairParser
- Author:
- Apache MINA SSHD Project
- See Also:
- RFC 5915
-
-
Field Summary
Fields Modifier and Type Field Description static StringBEGIN_MARKERstatic List<String>BEGINNERSstatic StringECDSA_OIDstatic StringEND_MARKERstatic List<String>ENDERSstatic ECDSAPEMResourceKeyPairParserINSTANCE-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
Fields inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceLoader
MAX_CIPHER_NAME_LENGTH, MAX_KEY_COMMENT_LENGTH, MAX_KEY_TYPE_NAME_LENGTH, MAX_PRIVATE_KEY_DATA_SIZE, MAX_PUBLIC_KEY_DATA_SIZE
-
Fields inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceParser
EMPTY
-
-
Constructor Summary
Constructors Constructor Description ECDSAPEMResourceKeyPairParser()
-
Method Summary
-
Methods inherited from class org.apache.sshd.common.config.keys.loader.pem.AbstractPEMResourceKeyPairParser
applyPrivateKeyCipher, extractKeyPairs, getAlgorithm, getAlgorithmIdentifier
-
Methods inherited from class org.apache.sshd.common.config.keys.loader.AbstractKeyPairResourceParser
canExtractKeyPairs, extractKeyPairs, getBeginners, getEnders, getEndingMarkers, loadKeyPairs, separateDataLinesFromHeaders
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
-
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.loader.KeyPairResourceLoader
loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs
-
Methods inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceParser
canExtractKeyPairs
-
-
-
-
Field Detail
-
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
-
ECDSA_OID
public static final String ECDSA_OID
- See Also:
- RFC-3279 section 2.3.5, Constant Field Values
-
INSTANCE
public static final ECDSAPEMResourceKeyPairParser INSTANCE
-
-
Method Detail
-
extractKeyPairs
public Collection<KeyPair> extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, InputStream stream, Map<String,String> headers) throws IOException, GeneralSecurityException
- Specified by:
extractKeyPairsin classAbstractKeyPairResourceParser- Parameters:
session- TheSessionContextfor invoking this load command - may benullif not invoked within a session context (e.g., offline tool or session unknown).resourceKey- A hint as to the origin of the text linesbeginMarker- The line containing the begin markerendMarker- The line containing the end markerpasswordProvider- TheFilePasswordProviderto use in case the data is encrypted - may benullif no encryptedstream- The decoded dataInputStreamheaders- Any headers that may have been available when data was read- Returns:
- The extracted
KeyPairs - may benull/empty if none. - Throws:
IOException- If failed to parse the dataGeneralSecurityException- If failed to generate the keys
-
parseECKeyPair
public static KeyPair parseECKeyPair(InputStream inputStream, boolean okToClose) throws IOException, GeneralSecurityException
- Throws:
IOExceptionGeneralSecurityException
-
parseECKeyPair
public static KeyPair parseECKeyPair(ECCurves curve, DERParser parser) throws IOException, GeneralSecurityException
- Parameters:
curve- Thecurverepresented by this data (in case it was optional and somehow known externally) ifnullthen it is assumed to be part of the parsed data. then it is assumed to be part of the data.parser- TheDERParserfor the data- Returns:
- The parsed
KeyPair - Throws:
IOException- If failed to parse the dataGeneralSecurityException- If failed to generate the keys
-
decodeECPrivateKeySpec
public static Map.Entry<ECPublicKeySpec,ECPrivateKeySpec> decodeECPrivateKeySpec(ECCurves curve, ASN1Object sequence) throws 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- Thecurverepresented by this data (in case it was optional and somehow known externally) ifnullthen it is assumed to be part of the parsed data.sequence- TheASN1Objectsequence containing the DER encoded data- Returns:
- The decoded
AbstractMap.SimpleImmutableEntryofECPublicKeySpecandECPrivateKeySpec - Throws:
IOException- If failed to to decode the DER stream
-
decodeECPrivateKeySpec
public static Map.Entry<ECPrivateKeySpec,ASN1Object> decodeECPrivateKeySpec(ECCurves curve, DERParser parser) throws IOException
- Throws:
IOException
-
parseCurveParameter
public static Map.Entry<ECCurves,ASN1Object> parseCurveParameter(DERParser parser) throws IOException
- Throws:
IOException
-
parseCurveParameter
public static Map.Entry<ECCurves,ASN1Object> parseCurveParameter(ASN1Object paramsObject) throws IOException
- Throws:
IOException
-
decodeECPublicKeyValue
public static final ECPoint decodeECPublicKeyValue(DERParser parser) throws IOException
ASN.1 syntax according to rfc5915 is:
publicKey [1] BIT STRING OPTIONAL- Parameters:
parser- TheDERParserassumed to be positioned at the start of the data- Returns:
- The encoded
ECPoint - Throws:
IOException- If failed to create the point
-
decodeECPublicKeyValue
public static final ECPoint decodeECPublicKeyValue(ASN1Object dataObject) throws IOException
- Throws:
IOException
-
decodeECPointData
public static final ECPoint decodeECPointData(ASN1Object pointData) throws IOException
- Throws:
IOException
-
-