Merge "Add a version field to the v4 signature file format"
This commit is contained in:
committed by
Android (Google) Code Review
commit
23605f217b
@@ -434,6 +434,11 @@ public final class IncrementalStorage {
|
||||
signature = V4Signature.readFrom(input);
|
||||
}
|
||||
|
||||
if (!signature.isVersionSupported()) {
|
||||
throw new IOException("v4 signature version " + signature.version
|
||||
+ " is not supported");
|
||||
}
|
||||
|
||||
final byte[] rootHash = signature.verityRootHash;
|
||||
final byte[] additionalData = signature.v3Digest;
|
||||
final byte[] pkcs7Signature = signature.pkcs7SignatureBlock;
|
||||
|
||||
@@ -31,7 +31,9 @@ import java.io.IOException;
|
||||
*/
|
||||
public class V4Signature {
|
||||
public static final String EXT = ".idsig";
|
||||
public static final int SUPPORTED_VERSION = 1;
|
||||
|
||||
public final int version;
|
||||
public final byte[] verityRootHash;
|
||||
public final byte[] v3Digest;
|
||||
public final byte[] pkcs7SignatureBlock;
|
||||
@@ -71,20 +73,27 @@ public class V4Signature {
|
||||
}
|
||||
}
|
||||
|
||||
boolean isVersionSupported() {
|
||||
return this.version == SUPPORTED_VERSION;
|
||||
}
|
||||
|
||||
static V4Signature readFrom(DataInputStream stream) throws IOException {
|
||||
final int version = stream.readInt();
|
||||
byte[] verityRootHash = readBytes(stream);
|
||||
byte[] v3Digest = readBytes(stream);
|
||||
byte[] pkcs7SignatureBlock = readBytes(stream);
|
||||
return new V4Signature(verityRootHash, v3Digest, pkcs7SignatureBlock);
|
||||
return new V4Signature(version, verityRootHash, v3Digest, pkcs7SignatureBlock);
|
||||
}
|
||||
|
||||
V4Signature(byte[] verityRootHash, byte[] v3Digest, byte[] pkcs7SignatureBlock) {
|
||||
V4Signature(int version, byte[] verityRootHash, byte[] v3Digest, byte[] pkcs7SignatureBlock) {
|
||||
this.version = version;
|
||||
this.verityRootHash = verityRootHash;
|
||||
this.v3Digest = v3Digest;
|
||||
this.pkcs7SignatureBlock = pkcs7SignatureBlock;
|
||||
}
|
||||
|
||||
void writeTo(DataOutputStream stream) throws IOException {
|
||||
stream.writeInt(this.version);
|
||||
writeBytes(stream, this.verityRootHash);
|
||||
writeBytes(stream, this.v3Digest);
|
||||
writeBytes(stream, this.pkcs7SignatureBlock);
|
||||
|
||||
Reference in New Issue
Block a user