public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof BCqTESLAPrivateKey) { BCqTESLAPrivateKey otherKey = (BCqTESLAPrivateKey)o; return keyParams.getSecurityCategory() == otherKey.keyParams.getSecurityCategory() && Arrays.areEqual(keyParams.getSecret(), otherKey.keyParams.getSecret()); } return false; }
/** * @return name of the algorithm */ public final String getAlgorithm() { return QTESLASecurityCategory.getName(keyParams.getSecurityCategory()); }
return new AsymmetricCipherKeyPair(new QTESLAPublicKeyParameters(securityCategory, publicKey), new QTESLAPrivateKeyParameters(securityCategory, privateKey));
QTESLASecurityCategory.validate(privateKey.getSecurityCategory());
return new QTESLAPrivateKeyParameters(Utils.qTeslaLookupSecurityCategory(keyInfo.getPrivateKeyAlgorithm()), qTESLAPriv.getOctets());
public int hashCode() { return keyParams.getSecurityCategory() + 37 * Arrays.hashCode(keyParams.getSecret()); }
byte[] sig = new byte[QTESLASecurityCategory.getSignatureSize(privateKey.getSecurityCategory())]; switch (privateKey.getSecurityCategory()) QTESLA.signingI(sig, message, 0, message.length, privateKey.getSecret(), secureRandom); break; case QTESLASecurityCategory.HEURISTIC_III_SIZE: QTESLA.signingIIISize(sig, message, 0, message.length, privateKey.getSecret(), secureRandom); break; case QTESLASecurityCategory.HEURISTIC_III_SPEED: QTESLA.signingIIISpeed(sig, message, 0, message.length, privateKey.getSecret(), secureRandom); break; case QTESLASecurityCategory.PROVABLY_SECURE_I: QTESLA.signingIP(sig, message, 0, message.length, privateKey.getSecret(), secureRandom); break; case QTESLASecurityCategory.PROVABLY_SECURE_III: QTESLA.signingIIIP(sig, message, 0, message.length, privateKey.getSecret(), secureRandom); break; default: throw new IllegalArgumentException("unknown security category: " + privateKey.getSecurityCategory());
AlgorithmIdentifier algorithmIdentifier = Utils.qTeslaLookupAlgID(keyParams.getSecurityCategory()); return new PrivateKeyInfo(algorithmIdentifier, new DEROctetString(keyParams.getSecret()), attributes);