BG created JDKIM-42: ----------------------- Summary: Example on how to use verify bh in DKIM Key: JDKIM-42 URL: https://issues.apache.org/jira/browse/JDKIM-42 Project: James jDKIM Issue Type: Question Reporter: BG
Trying to verify the DKIM bh value for an email using verify method from tests. {{protected static List<SignatureRecord> verify(DKIMVerifier verifier, MimeMessage message, boolean forceCRLF) throws MessagingException, FailException { Headers headers = new MimeMessageHeaders(message); BodyHasher bh = verifier.newBodyHasher(headers); try { if (bh != null) { OutputStream os = new HeaderSkippingOutputStream(bh .getOutputStream()); if (forceCRLF) os = new CRLFOutputStream(os); message.writeTo(os); bh.getOutputStream().close(); } } catch (IOException e) { throw new MessagingException("Exception calculating bodyhash: " + e.getMessage(), e); } return verifier.verify(bh); }}} Created DKIMVerifier with a PublicKeyRecordRetriever. Call verify method with following: {{verify(new DKIMVerifier(pkr), new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(str.getBytes())), false);}} str is a String with all of the source (headers and content) of an email. verify throws error "Header signature does not verify" from line with "BodyHasher bh = verifier.newBodyHasher(headers);". The only place in codebase where DKIMVerify.verify is used is in DKIMSignTest which uses a MockPublicKeyRecordRetriever. What is incorrect with implementation? Thanks. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org