use of co.krypt.krypton.exception.SodiumException 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));
}
use of co.krypt.krypton.exception.SodiumException in project krypton-android by kryptco.
the class Pairing method seal.
public byte[] seal(byte[] message) throws CryptoException {
byte[] nonce = SecureRandom.getSeed(Sodium.crypto_box_noncebytes());
byte[] sealed = new byte[message.length + Sodium.crypto_box_macbytes()];
if (0 != Sodium.crypto_box_easy(sealed, message, message.length, nonce, workstationPublicKey, enclaveSecretKey)) {
throw new SodiumException("crypto_box_easy failed");
}
ByteArrayOutputStream nonceAndSealed = new ByteArrayOutputStream();
try {
nonceAndSealed.write(nonce);
nonceAndSealed.write(sealed);
} catch (IOException e) {
throw new CryptoException(e.getMessage());
}
return nonceAndSealed.toByteArray();
}
Aggregations