Class GenericOpenSSHEd25519PrivateKeyEntryDecoder<PUB extends PublicKey, PRV extends PrivateKey>
java.lang.Object
org.apache.sshd.common.util.logging.AbstractLoggingBean
org.apache.sshd.common.config.keys.impl.AbstractIdentityResourceLoader<PUB,PRV>
org.apache.sshd.common.config.keys.impl.AbstractKeyEntryResolver<PUB,PRV>
org.apache.sshd.common.config.keys.impl.AbstractPrivateKeyEntryDecoder<PUB,PRV>
org.apache.sshd.common.util.security.eddsa.generic.GenericOpenSSHEd25519PrivateKeyEntryDecoder<PUB,PRV>
- All Implemented Interfaces:
IdentityResourceLoader<PUB,PRV>, KeyEntryResolver<PUB, PRV>, KeyTypeNamesSupport, PrivateKeyEntryDecoder<PUB, PRV>, PrivateKeyEntryResolver
- Direct Known Subclasses:
OpenSSHEd25519PrivateKeyEntryDecoder
public class GenericOpenSSHEd25519PrivateKeyEntryDecoder<PUB extends PublicKey, PRV extends PrivateKey>
extends AbstractPrivateKeyEntryDecoder<PUB,PRV>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final EdDSASupport<PUB, PRV> private static final intprivate static final intprivate static final intFields inherited from class AbstractLoggingBean
logFields inherited from interface IdentityResourceLoader
MAX_BIGINT_OCTETS_COUNTFields inherited from interface PrivateKeyEntryResolver
FAILING, IGNORING -
Constructor Summary
ConstructorsConstructorDescriptionGenericOpenSSHEd25519PrivateKeyEntryDecoder(Class<PUB> pubType, Class<PRV> prvType, EdDSASupport<PUB, PRV> edDSASupport) -
Method Summary
Modifier and TypeMethodDescriptionclonePrivateKey(PRV key) clonePublicKey(PUB key) decodePrivateKey(SessionContext session, String keyType, FilePasswordProvider passwordProvider, InputStream keyData) encodePrivateKey(SecureByteArrayOutputStream s, PRV key, PUB pubKey) booleanrecoverPublicKey(PRV prvKey) Attempts to recover the public key given the private oneMethods inherited from class AbstractKeyEntryResolver
generatePrivateKey, generatePublicKey, toStringMethods inherited from class AbstractIdentityResourceLoader
getPrivateKeyType, getPublicKeyType, getSupportedKeyTypesMethods inherited from class AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warnMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface IdentityResourceLoader
getPrivateKeyType, getPublicKeyTypeMethods inherited from interface KeyEntryResolver
cloneKeyPair, generateKeyPairMethods inherited from interface KeyTypeNamesSupport
getSupportedKeyTypesMethods inherited from interface PrivateKeyEntryDecoder
decodePrivateKey, decodePrivateKey, decodePrivateKey, resolve
-
Field Details
-
PK_SIZE
private static final int PK_SIZE- See Also:
-
SK_SIZE
private static final int SK_SIZE- See Also:
-
KEYPAIR_SIZE
private static final int KEYPAIR_SIZE- See Also:
-
edDSASupport
-
-
Constructor Details
-
GenericOpenSSHEd25519PrivateKeyEntryDecoder
-
-
Method Details
-
decodePrivateKey
public PRV decodePrivateKey(SessionContext session, String keyType, FilePasswordProvider passwordProvider, InputStream keyData) throws IOException, GeneralSecurityException - Parameters:
session- TheSessionContextfor invoking this load command - may benullif not invoked within a session context (e.g., offline tool or session unknown).keyType- The reported / encode key typepasswordProvider- TheFilePasswordProviderto use in case the data is encrypted - may benullif no encrypted data is expectedkeyData- The key data bytes stream positioned after the key type decoding and making sure it is one of the supported types- Returns:
- The decoded
PrivateKey - Throws:
IOException- If failed to read from the data streamGeneralSecurityException- If failed to generate the key
-
encodePrivateKey
public String encodePrivateKey(SecureByteArrayOutputStream s, PRV key, PUB pubKey) throws IOException Description copied from interface:PrivateKeyEntryDecoder- Parameters:
s- TheSecureByteArrayOutputStreamto write the data to.key- ThePrivateKey- may not benullpubKey- ThePublicKeybelonging to the private key - must be non-nullifpublic key recoveryis not supported- Returns:
- The key type value - one of the
KeyTypeNamesSupport.getSupportedKeyTypes()ornullif encoding not supported - Throws:
IOException- If failed to generate the encoding
-
isPublicKeyRecoverySupported
public boolean isPublicKeyRecoverySupported() -
recoverPublicKey
Description copied from interface:PrivateKeyEntryDecoderAttempts to recover the public key given the private one- Parameters:
prvKey- ThePrivateKey- Returns:
- The recovered
PublicKey-nullif cannot recover it - Throws:
GeneralSecurityException- If failed to generate the public key
-
clonePublicKey
- Parameters:
key- ThePublicKeyto clone - ignored ifnull- Returns:
- The cloned key (or
nullif no original key) - Throws:
GeneralSecurityException- If failed to clone the key
-
clonePrivateKey
- Parameters:
key- ThePrivateKeyto clone - ignored ifnull- Returns:
- The cloned key (or
nullif no original key) - Throws:
GeneralSecurityException- If failed to clone the key
-
getKeyPairGenerator
- Returns:
- A
KeyPairGeneratorsuitable for this decoder - Throws:
GeneralSecurityException- If failed to create the generator
-
getKeyFactoryInstance
- Returns:
- A
KeyFactorysuitable for the specific decoder type - Throws:
GeneralSecurityException- If failed to create one
-