in main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java [84:106]
public PublicKeyRecord publicKeySelector(List<String> records)
throws PermFailException {
String lastError = null;
if (records == null || records.isEmpty()) {
lastError = "no key for signature";
} else {
for (String record : records) {
try {
PublicKeyRecord pk = newPublicKeyRecord(record);
pk.validate();
// we expect a single valid record, otherwise the result
// is unpredictable.
// in case of multiple valid records we use the first one.
return pk;
} catch (IllegalStateException e) {
// do this at last.
lastError = "invalid key for signature: " + e.getMessage();
}
}
}
// return PERMFAIL ($error).
throw new PermFailException(lastError);
}