53 lines
1.7 KiB
Protocol Buffer
53 lines
1.7 KiB
Protocol Buffer
|
syntax = "proto2";
|
||
|
|
||
|
package android_backup_crypto;
|
||
|
|
||
|
option java_package = "com.android.server.backup.encryption.protos";
|
||
|
option java_outer_classname = "WrappedKeyProto";
|
||
|
|
||
|
// Metadata associated with a tertiary key.
|
||
|
message KeyMetadata {
|
||
|
// Type of Cipher algorithm the key is used for.
|
||
|
enum Type {
|
||
|
UNKNOWN = 0;
|
||
|
// No padding. Uses 12-byte nonce. Tag length 16 bytes.
|
||
|
AES_256_GCM = 1;
|
||
|
}
|
||
|
|
||
|
// What kind of Cipher algorithm the key is used for. We assume at the moment
|
||
|
// that this will always be AES_256_GCM and throw if this is not the case.
|
||
|
// Provided here for forwards compatibility in case at some point we need to
|
||
|
// change Cipher algorithm.
|
||
|
optional Type type = 1;
|
||
|
}
|
||
|
|
||
|
// An encrypted tertiary key.
|
||
|
message WrappedKey {
|
||
|
// The Cipher with which the key was encrypted.
|
||
|
enum WrapAlgorithm {
|
||
|
UNKNOWN = 0;
|
||
|
// No padding. Uses 16-byte nonce (see nonce field). Tag length 16 bytes.
|
||
|
// The nonce is 16-bytes as this is wrapped with a key in AndroidKeyStore.
|
||
|
// AndroidKeyStore requires that it generates the IV, and it generates a
|
||
|
// 16-byte IV for you. You CANNOT provide your own IV.
|
||
|
AES_256_GCM = 1;
|
||
|
}
|
||
|
|
||
|
// Cipher algorithm used to wrap the key. We assume at the moment that this
|
||
|
// is always AES_256_GC and throw if this is not the case. Provided here for
|
||
|
// forwards compatibility if at some point we need to change Cipher algorithm.
|
||
|
optional WrapAlgorithm wrap_algorithm = 1;
|
||
|
|
||
|
// The nonce used to initialize the Cipher in AES/256/GCM mode.
|
||
|
optional bytes nonce = 2;
|
||
|
|
||
|
// The encrypted bytes of the key material.
|
||
|
optional bytes key = 3;
|
||
|
|
||
|
// Associated key metadata.
|
||
|
optional KeyMetadata metadata = 4;
|
||
|
|
||
|
// Deprecated field; Do not use
|
||
|
reserved 5;
|
||
|
}
|