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 2009/10/12 13:58:02 UTC
svn commit: r824308 - in /james/jdkim/trunk/main/src:
main/java/org/apache/james/jdkim/DKIMVerifier.java
test/java/org/apache/james/jdkim/DKIMVerifierTest.java
Author: bago
Date: Mon Oct 12 11:58:02 2009
New Revision: 824308
URL: http://svn.apache.org/viewvc?rev=824308&view=rev
Log:
Changed unchecked IllegalStateException to checked PermFailExceptions in "apply" method.
Modified:
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.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=824308&r1=824307&r2=824308&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 Oct 12 11:58:02 2009
@@ -108,29 +108,34 @@
}
/**
- * @see org.apache.james.jdkim.api.PublicKeyRecord#apply(org.apache.james.jdkim.api.SignatureRecord)
+ * asserts applicability of a signature record the a public key record.
+ * throws an
+ *
+ * @param pkr public key record
+ * @param sign signature record
+ * @throws PermFailException when the keys are not applicable
*/
- public static void apply(PublicKeyRecord pkr, SignatureRecord sign) {
+ public static void apply(PublicKeyRecord pkr, SignatureRecord sign) throws PermFailException {
if (!pkr.getGranularityPattern().matcher(sign.getIdentityLocalPart())
.matches()) {
- throw new IllegalStateException("inapplicable key identity local="
+ throw new PermFailException("inapplicable key identity local="
+ sign.getIdentityLocalPart() + " Pattern: "
+ pkr.getGranularityPattern().pattern());
}
if (!pkr.isHashMethodSupported(sign.getHashMethod())) {
- throw new IllegalStateException("inappropriate hash for a="
+ throw new PermFailException("inappropriate hash for a="
+ sign.getHashKeyType() + "/" + sign.getHashMethod());
}
if (!pkr.isKeyTypeSupported(sign.getHashKeyType())) {
- throw new IllegalStateException("inappropriate key type for a="
+ 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 IllegalStateException(
+ throw new PermFailException(
"AUID in subdomain of SDID is not allowed by the public key record.");
}
}
@@ -166,9 +171,6 @@
// TODO loggin
apply(tempKey, sign);
key = tempKey;
- } catch (IllegalStateException e) {
- lastPermFailure = new PermFailException("Inapplicable key: "
- + e.getMessage(), e);
} catch (TempFailException tf) {
lastTempFailure = tf;
} catch (PermFailException pf) {
Modified: james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java?rev=824308&r1=824307&r2=824308&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java (original)
+++ james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java Mon Oct 12 11:58:02 2009
@@ -20,6 +20,7 @@
package org.apache.james.jdkim;
import org.apache.james.jdkim.api.PublicKeyRecord;
+import org.apache.james.jdkim.exceptions.PermFailException;
import org.apache.james.jdkim.tagvalue.PublicKeyRecordImpl;
import org.apache.james.jdkim.tagvalue.SignatureRecordImpl;
@@ -27,7 +28,7 @@
public class DKIMVerifierTest extends TestCase {
- public void testApply() {
+ public void testApply() throws PermFailException {
PublicKeyRecord pkr = new PublicKeyRecordImpl(
"k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
pkr.validate();
@@ -43,7 +44,7 @@
new SignatureRecordImpl(
"v=1; a=dsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
fail("This is not a signature for that key");
- } catch (IllegalStateException e) {
+ } catch (PermFailException e) {
}
pkr = new PublicKeyRecordImpl(
"k=rsa; t=y:s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
@@ -60,7 +61,7 @@
new SignatureRecordImpl(
"v=1; a=rsa-sha256; c=relaxed/relaxed; i=test@subdomain.gmail.com; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
fail("This is not a signature for that key");
- } catch (IllegalStateException e) {
+ } catch (PermFailException e) {
}
pkr = new PublicKeyRecordImpl(
"k=rsa; g=test*; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
@@ -77,7 +78,7 @@
new SignatureRecordImpl(
"v=1; a=rsa-sha256; c=relaxed/relaxed; i=bad@subdomain.gmail.com; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
fail("This is not a signature for that key");
- } catch (IllegalStateException e) {
+ } catch (PermFailException e) {
}
pkr = new PublicKeyRecordImpl(
"k=rsa; g=test*; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
@@ -93,7 +94,7 @@
new SignatureRecordImpl(
"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
fail("This hash method is not supported for that publick key");
- } catch (IllegalStateException e) {
+ } catch (PermFailException e) {
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org