ASN1InputStream in = new ASN1InputStream(val.getOctets()); return new OpenSSHPrivateKeySpec(OpenSSHPrivateKeyUtil.encodePrivateKey(new Ed25519PrivateKeyParameters(((DEROctetString)in.readObject()).getOctets(), 0)));
protected PrivateKey engineGeneratePrivate( KeySpec keySpec) throws InvalidKeySpecException { if (keySpec instanceof OpenSSHPrivateKeySpec) { CipherParameters parameters = OpenSSHPrivateKeyUtil.parsePrivateKeyBlob(((OpenSSHPrivateKeySpec)keySpec).getEncoded()); if (parameters instanceof Ed25519PrivateKeyParameters) { return new BCEdDSAPrivateKey((Ed25519PrivateKeyParameters)parameters); } throw new IllegalStateException("openssh private key not Ed25519 private key"); } return super.engineGeneratePrivate(keySpec); }
if (allIntegers(sequence) && ((ASN1Integer)sequence.getObjectAt(0)).getPositiveValue().equals(BigIntegers.ZERO)) if (allIntegers(sequence) && ((ASN1Integer)sequence.getObjectAt(0)).getPositiveValue().equals(BigIntegers.ZERO))
CipherParameters parameters = OpenSSHPrivateKeyUtil.parsePrivateKeyBlob(((OpenSSHPrivateKeySpec)keySpec).getEncoded());
return new OpenSSHPrivateKeySpec(OpenSSHPrivateKeyUtil.encodePrivateKey(new RSAPrivateCrtKeyParameters( ((RSAPrivateCrtKey)key).getModulus(), ((RSAPrivateCrtKey)key).getPublicExponent(),
protected PrivateKey engineGeneratePrivate( KeySpec keySpec) throws InvalidKeySpecException { if (keySpec instanceof DSAPrivateKeySpec) { return new BCDSAPrivateKey((DSAPrivateKeySpec)keySpec); } else if (keySpec instanceof OpenSSHPrivateKeySpec) { CipherParameters params = OpenSSHPrivateKeyUtil.parsePrivateKeyBlob(((OpenSSHPrivateKeySpec)keySpec).getEncoded()); if (params instanceof DSAPrivateKeyParameters) { return engineGeneratePrivate( new DSAPrivateKeySpec( ((DSAPrivateKeyParameters)params).getX(), ((DSAPrivateKeyParameters)params).getParameters().getP(), ((DSAPrivateKeyParameters)params).getParameters().getQ(), ((DSAPrivateKeyParameters)params).getParameters().getG())); } else { throw new IllegalArgumentException("openssh private key is not dsa privare key"); } } return super.engineGeneratePrivate(keySpec); }
try return new OpenSSHPrivateKeySpec(OpenSSHPrivateKeyUtil.encodePrivateKey(new DSAPrivateKeyParameters(k.getX(), new DSAParameters(k.getParams().getP(), k.getParams().getQ(), k.getParams().getG()))));