File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -18,5 +18,6 @@ extern void big_key_revoke(struct key *key);
18
18
extern void big_key_destroy (struct key * key );
19
19
extern void big_key_describe (const struct key * big_key , struct seq_file * m );
20
20
extern long big_key_read (const struct key * key , char * buffer , size_t buflen );
21
+ extern int big_key_update (struct key * key , struct key_preparsed_payload * prep );
21
22
22
23
#endif /* _KEYS_BIG_KEY_TYPE_H */
Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ struct key_type key_type_big_key = {
47
47
.destroy = big_key_destroy ,
48
48
.describe = big_key_describe ,
49
49
.read = big_key_read ,
50
- /* no -> update(); don't add it without changing chacha20poly1305's nonce */
50
+ . update = big_key_update ,
51
51
};
52
52
53
53
/*
@@ -191,6 +191,23 @@ void big_key_destroy(struct key *key)
191
191
key -> payload .data [big_key_data ] = NULL ;
192
192
}
193
193
194
+ /*
195
+ * Update a big key
196
+ */
197
+ int big_key_update (struct key * key , struct key_preparsed_payload * prep )
198
+ {
199
+ int ret ;
200
+
201
+ ret = key_payload_reserve (key , prep -> datalen );
202
+ if (ret < 0 )
203
+ return ret ;
204
+
205
+ if (key_is_positive (key ))
206
+ big_key_destroy (key );
207
+
208
+ return generic_key_instantiate (key , prep );
209
+ }
210
+
194
211
/*
195
212
* describe the big_key key
196
213
*/
You can’t perform that action at this time.
0 commit comments