/* DigiDoc4J library * * This software is released under either the GNU Library General Public * License (see LICENSE.LGPL). * * Note that the only valid version of the LGPL license as far as this * project is concerned is the original GNU Library General Public License * Version 2.1, February 1999 */ package org.digidoc4j; import org.digidoc4j.exceptions.DigiDoc4JException; import java.net.MalformedURLException; import java.net.URL; /** * Supported algorithms */ public enum DigestAlgorithm { SHA1("http://www.w3.org/2000/09/xmldsig#sha1", new byte[] { 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14 }), SHA224("http://www.w3.org/2001/04/xmldsig-more#sha224", new byte[] { 0x30, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x60, (byte) 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, 0x05, 0x00, 0x04, 0x1c }), SHA256("http://www.w3.org/2001/04/xmlenc#sha256", new byte[] { 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, (byte) 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20 }), SHA384("http://www.w3.org/2001/04/xmldsig-more#sha384", new byte[] { 0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, (byte) 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30 }), SHA512("http://www.w3.org/2001/04/xmlenc#sha512", new byte[] { 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, (byte) 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40 }); private URL uri; private byte[] digestInfoPrefix; private DigestAlgorithm(String uri, byte[] digestInfoPrefix) { try { this.uri = new URL(uri); this.digestInfoPrefix = digestInfoPrefix; } catch (MalformedURLException e) { throw new DigiDoc4JException(e); } } /** * Get uri * * @return uri */ public URL uri() { return uri; } public byte[] digestInfoPrefix() { return digestInfoPrefix; } public eu.europa.esig.dss.DigestAlgorithm getDssDigestAlgorithm() { return eu.europa.esig.dss.DigestAlgorithm.forXML(uri.toString()); } /** * Get uri string * * @return uri */ public String toString() { return uri.toString(); } }