You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2010/03/29 12:02:12 UTC
svn commit: r928673 -
/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
Author: bago
Date: Mon Mar 29 10:02:12 2010
New Revision: 928673
URL: http://svn.apache.org/viewvc?rev=928673&view=rev
Log:
Catch IllegalStateExcetpion and rethrow as PermFailException on Invalid public key.
Modified:
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java?rev=928673&r1=928672&r2=928673&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java Mon Mar 29 10:02:12 2010
@@ -116,30 +116,33 @@ public class DKIMVerifier extends DKIMCo
* @throws PermFailException when the keys are not applicable
*/
public static void apply(PublicKeyRecord pkr, SignatureRecord sign) throws PermFailException {
- if (!pkr.getGranularityPattern().matcher(sign.getIdentityLocalPart())
- .matches()) {
- throw new PermFailException("inapplicable key identity local="
- + sign.getIdentityLocalPart() + " Pattern: "
- + pkr.getGranularityPattern().pattern());
- }
-
- if (!pkr.isHashMethodSupported(sign.getHashMethod())) {
- throw new PermFailException("inappropriate hash for a="
- + sign.getHashKeyType() + "/" + sign.getHashMethod());
- }
- if (!pkr.isKeyTypeSupported(sign.getHashKeyType())) {
- throw new PermFailException("inappropriate key type for a="
- + sign.getHashKeyType() + "/" + sign.getHashMethod());
- }
-
- if (pkr.isDenySubdomains()) {
- if (!sign.getIdentity().toString().toLowerCase().endsWith(
- ("@" + sign.getDToken()).toLowerCase())) {
- throw new PermFailException(
- "AUID in subdomain of SDID is not allowed by the public key record.");
+ try {
+ if (!pkr.getGranularityPattern().matcher(sign.getIdentityLocalPart())
+ .matches()) {
+ throw new PermFailException("inapplicable key identity local="
+ + sign.getIdentityLocalPart() + " Pattern: "
+ + pkr.getGranularityPattern().pattern());
}
+
+ if (!pkr.isHashMethodSupported(sign.getHashMethod())) {
+ throw new PermFailException("inappropriate hash for a="
+ + sign.getHashKeyType() + "/" + sign.getHashMethod());
+ }
+ if (!pkr.isKeyTypeSupported(sign.getHashKeyType())) {
+ throw new PermFailException("inappropriate key type for a="
+ + sign.getHashKeyType() + "/" + sign.getHashMethod());
+ }
+
+ if (pkr.isDenySubdomains()) {
+ if (!sign.getIdentity().toString().toLowerCase().endsWith(
+ ("@" + sign.getDToken()).toLowerCase())) {
+ throw new PermFailException(
+ "AUID in subdomain of SDID is not allowed by the public key record.");
+ }
+ }
+ } catch (IllegalStateException e) {
+ throw new PermFailException("Invalid public key: "+e.getMessage());
}
-
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org