public RemEvidenceBuilder payloadDigest(byte[] payloadDigest) { evidence = evidence.digest(Digest.of(DigestMethod.SHA256, payloadDigest)); return this; }
public MimeMessage createSignedMimeMessageNew(MimeBodyPart mimeBodyPart, Digest digest, SMimeDigestMethod digestMethod) throws OxalisTransmissionException { try { MimeMultipart mimeMultipart = new MimeMultipart(); mimeMultipart.setSubType("signed"); mimeMultipart.addBodyPart(mimeBodyPart); MimeBodyPart signaturePart = new MimeBodyPart(); DataSource dataSource = new ByteArrayDataSource(SMimeBC.createSignature(digest.getValue(), digestMethod, privateKey, ourCertificate), "application/pkcs7-signature"); signaturePart.setDataHandler(new DataHandler(dataSource)); signaturePart.setHeader("Content-Type", "application/pkcs7-signature; name=smime.p7s; smime-type=signed-data"); signaturePart.setHeader("Content-Transfer-Encoding", "base64"); signaturePart.setHeader("Content-Disposition", "attachment; filename=\"smime.p7s\""); signaturePart.setHeader("Content-Description", "S/MIME Cryptographic Signature"); mimeMultipart.addBodyPart(signaturePart); MimeMessage mimeMessage = new MimeMessage(session); mimeMessage.setContent(mimeMultipart, mimeMultipart.getContentType()); mimeMessage.saveChanges(); return mimeMessage; } catch (MessagingException | OxalisSecurityException e) { throw new OxalisTransmissionException(e.getMessage(), e); } } }
public MimeMessage createSignedMimeMessageNew(MimeBodyPart mimeBodyPart, Digest digest, SMimeDigestMethod digestMethod) throws OxalisTransmissionException { try { MimeMultipart mimeMultipart = new MimeMultipart(); mimeMultipart.setSubType("signed"); mimeMultipart.addBodyPart(mimeBodyPart); MimeBodyPart signaturePart = new MimeBodyPart(); DataSource dataSource = new ByteArrayDataSource(SMimeBC.createSignature(digest.getValue(), digestMethod, privateKey, ourCertificate), "application/pkcs7-signature"); signaturePart.setDataHandler(new DataHandler(dataSource)); signaturePart.setHeader("Content-Type", "application/pkcs7-signature; name=smime.p7s; smime-type=signed-data"); signaturePart.setHeader("Content-Transfer-Encoding", "base64"); signaturePart.setHeader("Content-Disposition", "attachment; filename=\"smime.p7s\""); signaturePart.setHeader("Content-Description", "S/MIME Cryptographic Signature"); mimeMultipart.addBodyPart(signaturePart); MimeMessage mimeMessage = new MimeMessage(session); mimeMessage.setContent(mimeMultipart, mimeMultipart.getContentType()); mimeMessage.saveChanges(); return mimeMessage; } catch (MessagingException | OxalisSecurityException e) { throw new OxalisTransmissionException(e.getMessage(), e); } } }
/** * Calculates sha1 mic based on the MIME body part. */ public static Digest calculateMic(MimeBodyPart bodyPart, SMimeDigestMethod digestMethod) { try { MessageDigest md = BCHelper.getMessageDigest(digestMethod.getIdentifier()); bodyPart.writeTo(new DigestOutputStream(ByteStreams.nullOutputStream(), md)); return Digest.of(digestMethod.getDigestMethod(), md.digest()); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException(digestMethod.getIdentifier() + " not found", e); } catch (IOException e) { throw new IllegalStateException("Unable to read data from digest input. " + e.getMessage(), e); } catch (MessagingException e) { throw new IllegalStateException("Unable to handle mime body part. " + e.getMessage(), e); } }
/** * Calculates sha1 mic based on the MIME body part. */ public static Digest calculateMic(MimeBodyPart bodyPart, SMimeDigestMethod digestMethod) { try { MessageDigest md = BCHelper.getMessageDigest(digestMethod.getIdentifier()); bodyPart.writeTo(new DigestOutputStream(ByteStreams.nullOutputStream(), md)); return Digest.of(digestMethod.getDigestMethod(), md.digest()); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException(digestMethod.getIdentifier() + " not found", e); } catch (IOException e) { throw new IllegalStateException("Unable to read data from digest input. " + e.getMessage(), e); } catch (MessagingException e) { throw new IllegalStateException("Unable to handle mime body part. " + e.getMessage(), e); } }
messageDetailsType.setMessageIdentifierByREMMD(evidence.getMessageIdentifier().getIdentifier()); DigestMethodType digestMethodType = new DigestMethodType(); digestMethodType.setAlgorithm(evidence.getDigest().getMethod().getUri()); messageDetailsType.setDigestMethod(digestMethodType); messageDetailsType.setDigestValue(evidence.getDigest().getValue()); messageDetailsType.setIsNotification(false); remEvidence.setSenderMessageDetails(messageDetailsType);
evidence = evidence.digest(Digest.of(DigestMethod.fromUri(remEvidence.getSenderMessageDetails() .getDigestMethod().getAlgorithm()), remEvidence.getSenderMessageDetails().getDigestValue())); if (remEvidence.getSenderMessageDetails().getUAMessageIdentifier() != null)
Digest calculatedDigest = Digest.of(digestMethod.getDigestMethod(), message.getDigest()); mdnBuilder.addHeader(MdnHeader.RECEIVED_CONTENT_MIC, new Mic(calculatedDigest));
Digest calculatedDigest = Digest.of(digestMethod.getDigestMethod(), message.getDigest()); mdnBuilder.addHeader(MdnHeader.RECEIVED_CONTENT_MIC, new Mic(calculatedDigest));