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 09:42:49 UTC
svn commit: r824254 - in /james/jdkim/trunk:
mailets/src/main/java/org/apache/james/jdkim/mailets/
main/src/main/java/org/apache/james/jdkim/
main/src/main/java/org/apache/james/jdkim/impl/
main/src/main/java/org/apache/james/jdkim/tagvalue/
Author: bago
Date: Mon Oct 12 07:42:49 2009
New Revision: 824254
URL: http://svn.apache.org/viewvc?rev=824254&view=rev
Log:
Hide crypto exceptions behind PermFailExceptions.
Modified:
james/jdkim/trunk/mailets/src/main/java/org/apache/james/jdkim/mailets/DKIMSign.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/BodyHasherImpl.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/DNSPublicKeyRecordRetriever.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/PublicKeyRecordImpl.java
Modified: james/jdkim/trunk/mailets/src/main/java/org/apache/james/jdkim/mailets/DKIMSign.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/mailets/src/main/java/org/apache/james/jdkim/mailets/DKIMSign.java?rev=824254&r1=824253&r2=824254&view=diff
==============================================================================
--- james/jdkim/trunk/mailets/src/main/java/org/apache/james/jdkim/mailets/DKIMSign.java (original)
+++ james/jdkim/trunk/mailets/src/main/java/org/apache/james/jdkim/mailets/DKIMSign.java Mon Oct 12 07:42:49 2009
@@ -138,9 +138,6 @@
// on top.
// message.addHeaderLine(signatureHeader);
prependHeader(message, signatureHeader);
- } catch (NoSuchAlgorithmException e) {
- throw new MessagingException(
- "Unknown algorythm: " + e.getMessage(), e);
} catch (PermFailException e) {
throw new MessagingException("PermFail while signing: "
+ e.getMessage(), e);
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java?rev=824254&r1=824253&r2=824254&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java Mon Oct 12 07:42:49 2009
@@ -57,7 +57,7 @@
}
public BodyHasher newBodyHasher(SignatureRecord signRecord)
- throws NoSuchAlgorithmException {
+ throws PermFailException {
return new BodyHasherImpl(signRecord);
}
@@ -71,18 +71,14 @@
+ e1.getMessage(), e1);
}
SignatureRecord srt = newSignatureRecordTemplate(signatureRecordTemplate);
- try {
- BodyHasher bhj = newBodyHasher(srt);
- // computation of the body hash.
- DKIMCommon.streamCopy(message.getBodyInputStream(), bhj
- .getOutputStream());
-
- return sign(message, bhj);
- } catch (NoSuchAlgorithmException e) {
- throw new PermFailException("Unknown algorythm: "
- + e.getMessage(), e);
- }
+ BodyHasher bhj = newBodyHasher(srt);
+
+ // computation of the body hash.
+ DKIMCommon.streamCopy(message.getBodyInputStream(), bhj
+ .getOutputStream());
+
+ return sign(message, bhj);
} finally {
is.close();
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=824254&r1=824253&r2=824254&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 07:42:49 2009
@@ -73,7 +73,7 @@
}
public BodyHasher newBodyHasher(SignatureRecord signRecord)
- throws NoSuchAlgorithmException {
+ throws PermFailException {
return new BodyHasherImpl(signRecord);
}
@@ -333,6 +333,7 @@
throw prepareException(signatureExceptions);
} else {
// TODO list good and bad signatures.
+ // remove system out.
for (Iterator i = signatureExceptions.keySet().iterator(); i
.hasNext();) {
String f = (String) i.next();
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/BodyHasherImpl.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/BodyHasherImpl.java?rev=824254&r1=824253&r2=824254&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/BodyHasherImpl.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/BodyHasherImpl.java Mon Oct 12 07:42:49 2009
@@ -30,6 +30,7 @@
import org.apache.james.jdkim.canon.LimitedOutputStream;
import org.apache.james.jdkim.canon.RelaxedBodyCanonicalizer;
import org.apache.james.jdkim.canon.SimpleBodyCanonicalizer;
+import org.apache.james.jdkim.exceptions.PermFailException;
public class BodyHasherImpl implements BodyHasher {
@@ -38,16 +39,29 @@
private DigestOutputStream digesterOS;
private OutputStream out;
- public BodyHasherImpl(SignatureRecord sign) throws NoSuchAlgorithmException {
- MessageDigest md = MessageDigest.getInstance(sign.getHashAlgo()
- .toString());
+ public BodyHasherImpl(SignatureRecord sign) throws PermFailException {
+ MessageDigest md;
+ try {
+ md = MessageDigest.getInstance(sign.getHashAlgo().toString());
+ } catch (NoSuchAlgorithmException e) {
+ throw new PermFailException("Unsupported algorythm: "
+ + sign.getHashAlgo(), e);
+ }
int limit = sign.getBodyHashLimit();
// TODO enhance this to use a lookup service.
- boolean relaxedBody = "relaxed".equals(sign
+ boolean relaxedBody = SignatureRecord.RELAXED.equals(sign
.getBodyCanonicalisationMethod());
+ if (!relaxedBody
+ && !SignatureRecord.SIMPLE.equals(sign
+ .getBodyCanonicalisationMethod())) {
+ throw new PermFailException(
+ "Unsupported body canonicalization method: "
+ + sign.getBodyCanonicalisationMethod());
+ }
+
DigestOutputStream dout = new DigestOutputStream(md);
OutputStream out = dout;
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/DNSPublicKeyRecordRetriever.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/DNSPublicKeyRecordRetriever.java?rev=824254&r1=824253&r2=824254&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/DNSPublicKeyRecordRetriever.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/DNSPublicKeyRecordRetriever.java Mon Oct 12 07:42:49 2009
@@ -46,6 +46,9 @@
this.resolver = resolver;
}
+ /**
+ * @see org.apache.james.jdkim.api.PublicKeyRecordRetriever#getRecords(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence)
+ */
public List/* String */getRecords(CharSequence methodAndOptions,
CharSequence selector, CharSequence token)
throws TempFailException, PermFailException {
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java?rev=824254&r1=824253&r2=824254&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java Mon Oct 12 07:42:49 2009
@@ -36,8 +36,6 @@
/**
* The header of an entity (see RFC 2045).
- *
- * TODO: we have to handle correct ordered extraction for fields.
*/
public class Message implements Headers {
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/PublicKeyRecordImpl.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/PublicKeyRecordImpl.java?rev=824254&r1=824253&r2=824254&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/PublicKeyRecordImpl.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/PublicKeyRecordImpl.java Mon Oct 12 07:42:49 2009
@@ -68,8 +68,7 @@
}
// TODO do we treat v=NONDKIM1 records, syntax error records and v=DKIM1 in
- // the middle records
- // in the same way?
+ // the middle records in the same way?
public void validate() {
super.validate();
if (containsTag("v")) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org