Search in sources :

Example 1 with MPInt

use of co.krypt.krypton.pgp.packet.MPInt in project krypton-android by kryptco.

the class RSASSHKeyPair method pgpPublicKeyData.

@Override
public PublicKeyData pgpPublicKeyData() {
    RSAPublicKey rsaPub = (RSAPublicKey) keyPair.getPublic();
    byte[] n = rsaPub.getModulus().toByteArray();
    byte[] e = rsaPub.getPublicExponent().toByteArray();
    return new RSAPublicKeyData(new MPInt(n), new MPInt(e));
}
Also used : RSAPublicKeyData(co.krypt.krypton.pgp.publickey.RSAPublicKeyData) RSAPublicKey(java.security.interfaces.RSAPublicKey) MPInt(co.krypt.krypton.pgp.packet.MPInt)

Example 2 with MPInt

use of co.krypt.krypton.pgp.packet.MPInt in project krypton-android by kryptco.

the class EdSSHKeyPair method pgpSign.

@Override
public Signature pgpSign(HashAlgorithm hash, byte[] data) throws PGPException, NoSuchAlgorithmException, CryptoException, SignatureException, NoSuchProviderException, InvalidKeyException, InvalidKeySpecException {
    byte[] signatureBytes = signDigest(hash.digest().digest(data));
    if (signatureBytes.length != 64) {
        throw new SodiumException("unexpected signature length");
    }
    byte[] r = Arrays.copyOfRange(signatureBytes, 0, 32);
    byte[] s = Arrays.copyOfRange(signatureBytes, 32, 64);
    return new Ed25519Signature(new MPInt(r), new MPInt(s));
}
Also used : SodiumException(co.krypt.krypton.exception.SodiumException) Ed25519Signature(co.krypt.krypton.pgp.packet.Ed25519Signature) MPInt(co.krypt.krypton.pgp.packet.MPInt)

Aggregations

MPInt (co.krypt.krypton.pgp.packet.MPInt)2 SodiumException (co.krypt.krypton.exception.SodiumException)1 Ed25519Signature (co.krypt.krypton.pgp.packet.Ed25519Signature)1 RSAPublicKeyData (co.krypt.krypton.pgp.publickey.RSAPublicKeyData)1 RSAPublicKey (java.security.interfaces.RSAPublicKey)1