in main/src/main/java/org/apache/james/jdkim/impl/BodyHasherImpl.java [42:75]
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(), sign, e);
}
int limit = sign.getBodyHashLimit();
// TODO enhance this to use a lookup service.
boolean relaxedBody = SignatureRecord.RELAXED.equals(sign
.getBodyCanonicalisationMethod());
if (!relaxedBody
&& !SignatureRecord.SIMPLE.equals(sign
.getBodyCanonicalisationMethod())) {
throw new PermFailException(
"Unsupported body canonicalization method: "
+ sign.getBodyCanonicalisationMethod(), sign);
}
DigestOutputStream dout = new DigestOutputStream(md);
OutputStream out = dout;
if (DEEP_DEBUG)
out = new DebugOutputStream(out);
out = prepareCanonicalizerOutputStream(limit, relaxedBody, out);
this.sign = sign;
this.digesterOS = dout;
this.out = out;
}