public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof BCqTESLAPublicKey) { BCqTESLAPublicKey otherKey = (BCqTESLAPublicKey)o; return keyParams.getSecurityCategory() == otherKey.keyParams.getSecurityCategory() && Arrays.areEqual(keyParams.getPublicData(), otherKey.keyParams.getPublicData()); } return false; }
/** * @return name of the algorithm */ public final String getAlgorithm() { return QTESLASecurityCategory.getName(keyParams.getSecurityCategory()); }
AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams) throws IOException { return new QTESLAPublicKeyParameters(Utils.qTeslaLookupSecurityCategory(keyInfo.getAlgorithm()), keyInfo.getPublicKeyData().getOctets()); } }
QTESLASecurityCategory.validate(publicKey.getSecurityCategory());
return new AsymmetricCipherKeyPair(new QTESLAPublicKeyParameters(securityCategory, publicKey), new QTESLAPrivateKeyParameters(securityCategory, privateKey));
public int hashCode() { return keyParams.getSecurityCategory() + 37 * Arrays.hashCode(keyParams.getPublicData()); }
switch (publicKey.getSecurityCategory()) status = QTESLA.verifyingI(message, signature, 0, signature.length, publicKey.getPublicData()); break; case QTESLASecurityCategory.HEURISTIC_III_SIZE: status = QTESLA.verifyingIIISize(message, signature, 0, signature.length, publicKey.getPublicData()); break; case QTESLASecurityCategory.HEURISTIC_III_SPEED: status = QTESLA.verifyingIIISpeed(message, signature, 0, signature.length, publicKey.getPublicData()); break; case QTESLASecurityCategory.PROVABLY_SECURE_I: status = QTESLA.verifyingPI(message, signature, 0, signature.length, publicKey.getPublicData()); break; case QTESLASecurityCategory.PROVABLY_SECURE_III: status = QTESLA.verifyingPIII(message, signature, 0, signature.length, publicKey.getPublicData()); break; default: throw new IllegalArgumentException("unknown security category: " + publicKey.getSecurityCategory());
AlgorithmIdentifier algorithmIdentifier = Utils.qTeslaLookupAlgID(keyParams.getSecurityCategory()); return new SubjectPublicKeyInfo(algorithmIdentifier, keyParams.getPublicData());