cipher_aes.go raw
1 package pkcs8
2
3 import (
4 "crypto/aes"
5 "encoding/asn1"
6 )
7
8 var (
9 oidAES128CBC = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 1, 2}
10 oidAES128GCM = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 1, 6}
11 oidAES192CBC = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 1, 22}
12 oidAES192GCM = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 1, 26}
13 oidAES256CBC = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 1, 42}
14 oidAES256GCM = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 1, 46}
15 )
16
17 func init() {
18 RegisterCipher(oidAES128CBC, func() Cipher {
19 return AES128CBC
20 })
21 RegisterCipher(oidAES128GCM, func() Cipher {
22 return AES128GCM
23 })
24 RegisterCipher(oidAES192CBC, func() Cipher {
25 return AES192CBC
26 })
27 RegisterCipher(oidAES192GCM, func() Cipher {
28 return AES192GCM
29 })
30 RegisterCipher(oidAES256CBC, func() Cipher {
31 return AES256CBC
32 })
33 RegisterCipher(oidAES256GCM, func() Cipher {
34 return AES256GCM
35 })
36 }
37
38 // AES128CBC is the 128-bit key AES cipher in CBC mode.
39 var AES128CBC = cipherWithBlock{
40 ivSize: aes.BlockSize,
41 keySize: 16,
42 newBlock: aes.NewCipher,
43 oid: oidAES128CBC,
44 }
45
46 // AES128GCM is the 128-bit key AES cipher in GCM mode.
47 var AES128GCM = cipherWithBlock{
48 ivSize: aes.BlockSize,
49 keySize: 16,
50 newBlock: aes.NewCipher,
51 oid: oidAES128GCM,
52 }
53
54 // AES192CBC is the 192-bit key AES cipher in CBC mode.
55 var AES192CBC = cipherWithBlock{
56 ivSize: aes.BlockSize,
57 keySize: 24,
58 newBlock: aes.NewCipher,
59 oid: oidAES192CBC,
60 }
61
62 // AES192GCM is the 912-bit key AES cipher in GCM mode.
63 var AES192GCM = cipherWithBlock{
64 ivSize: aes.BlockSize,
65 keySize: 24,
66 newBlock: aes.NewCipher,
67 oid: oidAES192GCM,
68 }
69
70 // AES256CBC is the 256-bit key AES cipher in CBC mode.
71 var AES256CBC = cipherWithBlock{
72 ivSize: aes.BlockSize,
73 keySize: 32,
74 newBlock: aes.NewCipher,
75 oid: oidAES256CBC,
76 }
77
78 // AES256GCM is the 256-bit key AES cipher in GCM mode.
79 var AES256GCM = cipherWithBlock{
80 ivSize: aes.BlockSize,
81 keySize: 32,
82 newBlock: aes.NewCipher,
83 oid: oidAES256GCM,
84 }
85