1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.crypto;
20
21 import java.security.InvalidKeyException;
22 import java.security.KeyFactory;
23 import java.security.KeyPairGenerator;
24 import java.security.MessageDigest;
25 import java.security.NoSuchAlgorithmException;
26 import java.security.cert.CertificateFactory;
27
28 import javax.crypto.Mac;
29
30 import org.jclouds.encryption.internal.JCECrypto;
31
32 import com.google.inject.ImplementedBy;
33
34
35
36
37
38
39
40 @ImplementedBy(JCECrypto.class)
41 public interface Crypto {
42 KeyPairGenerator rsaKeyPairGenerator();
43
44 KeyFactory rsaKeyFactory();
45
46 CertificateFactory certFactory();
47
48 Mac hmac(String algorithm, byte[] key) throws NoSuchAlgorithmException, InvalidKeyException;
49
50 Mac hmacSHA256(byte[] key) throws InvalidKeyException;
51
52 Mac hmacSHA1(byte[] key) throws InvalidKeyException;
53
54 MessageDigest digest(String algorithm) throws NoSuchAlgorithmException;
55
56 MessageDigest md5();
57
58 MessageDigest sha1();
59
60 MessageDigest sha256();
61
62 MessageDigest sha512();
63
64 }