@@ -13,6 +13,8 @@ import (
13
13
// https://www.iacr.org/archive/pkc2011/65710074/65710074.pdf that
14
14
// apply the Boneh-Katz transform to Attribute based encryption.
15
15
16
+ const macKeySeedSize = 56
17
+
16
18
func blakeEncrypt (key []byte , msg []byte ) ([]byte , error ) {
17
19
xof , err := blake2b .NewXOF (blake2b .OutputLengthUnknown , key )
18
20
if err != nil {
@@ -70,7 +72,7 @@ func DeriveAttributeKeysCCA(rand io.Reader, sp *SecretParams, attrs *Attributes)
70
72
}
71
73
72
74
func EncryptCCA (rand io.Reader , public * PublicParams , policy * Policy , msg []byte ) ([]byte , error ) {
73
- seed := make ([]byte , 16 )
75
+ seed := make ([]byte , macKeySeedSize )
74
76
_ , err := rand .Read (seed )
75
77
if err != nil {
76
78
return nil , err
@@ -173,12 +175,12 @@ func DecryptCCA(ciphertext []byte, key *AttributesKey) ([]byte, error) {
173
175
if err != nil {
174
176
return nil , err
175
177
}
176
- if len (decEnv ) < 16 {
178
+ if len (decEnv ) < macKeySeedSize {
177
179
return nil , fmt .Errorf ("envelope too short" )
178
180
}
179
181
180
- seed := decEnv [0 :16 ]
181
- ptx := make ([]byte , len (decEnv )- 16 )
182
+ seed := decEnv [0 :macKeySeedSize ]
183
+ ptx := make ([]byte , len (decEnv )- macKeySeedSize )
182
184
compID , macKey , err := expandSeed (seed )
183
185
if err != nil {
184
186
return nil , err
@@ -194,7 +196,7 @@ func DecryptCCA(ciphertext []byte, key *AttributesKey) ([]byte, error) {
194
196
idMatch := subtle .ConstantTimeCompare (compID , id )
195
197
check := tagMatch & idMatch
196
198
if check == 1 {
197
- copy (ptx , decEnv [16 :])
199
+ copy (ptx , decEnv [macKeySeedSize :])
198
200
return ptx , nil
199
201
}
200
202
return nil , fmt .Errorf ("failure of decryption" )
0 commit comments