1 package org.eclipse.aether.internal.impl.checksum;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithm;
23 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory;
24 import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactorySupport;
25 import org.eclipse.aether.util.ChecksumUtils;
26
27 import java.nio.ByteBuffer;
28 import java.security.MessageDigest;
29 import java.security.NoSuchAlgorithmException;
30
31
32
33
34
35
36 public abstract class MessageDigestChecksumAlgorithmFactorySupport
37 extends ChecksumAlgorithmFactorySupport
38 {
39 public MessageDigestChecksumAlgorithmFactorySupport( String name, String extension )
40 {
41 super( name, extension );
42 }
43
44 @Override
45 public ChecksumAlgorithm getAlgorithm()
46 {
47 try
48 {
49 MessageDigest messageDigest = MessageDigest.getInstance( getName() );
50 return new ChecksumAlgorithm()
51 {
52 @Override
53 public void update( final ByteBuffer input )
54 {
55 messageDigest.update( input );
56 }
57
58 @Override
59 public String checksum()
60 {
61 return ChecksumUtils.toHexString( messageDigest.digest() );
62 }
63 };
64 }
65 catch ( NoSuchAlgorithmException e )
66 {
67 throw new IllegalStateException(
68 "MessageDigest algorithm " + getName() + " not supported, but is required by resolver.", e );
69 }
70 }
71 }