Merge "Enforce tag types in KeymasterArgument classes"

This commit is contained in:
Chad Brubaker
2015-03-25 18:00:48 +00:00
committed by Gerrit Code Review
5 changed files with 34 additions and 0 deletions

View File

@@ -27,6 +27,13 @@ class KeymasterBlobArgument extends KeymasterArgument {
public KeymasterBlobArgument(int tag, byte[] blob) {
super(tag);
switch (KeymasterDefs.getTagType(tag)) {
case KeymasterDefs.KM_BIGNUM:
case KeymasterDefs.KM_BYTES:
break; // OK.
default:
throw new IllegalArgumentException("Bad blob tag " + tag);
}
this.blob = blob;
}

View File

@@ -29,6 +29,12 @@ class KeymasterBooleanArgument extends KeymasterArgument {
public KeymasterBooleanArgument(int tag) {
super(tag);
switch (KeymasterDefs.getTagType(tag)) {
case KeymasterDefs.KM_BOOL:
break; // OK.
default:
throw new IllegalArgumentException("Bad bool tag " + tag);
}
}
public KeymasterBooleanArgument(int tag, Parcel in) {

View File

@@ -29,6 +29,12 @@ class KeymasterDateArgument extends KeymasterArgument {
public KeymasterDateArgument(int tag, Date date) {
super(tag);
switch (KeymasterDefs.getTagType(tag)) {
case KeymasterDefs.KM_DATE:
break; // OK.
default:
throw new IllegalArgumentException("Bad date tag " + tag);
}
this.date = date;
}

View File

@@ -27,6 +27,15 @@ class KeymasterIntArgument extends KeymasterArgument {
public KeymasterIntArgument(int tag, int value) {
super(tag);
switch (KeymasterDefs.getTagType(tag)) {
case KeymasterDefs.KM_INT:
case KeymasterDefs.KM_INT_REP:
case KeymasterDefs.KM_ENUM:
case KeymasterDefs.KM_ENUM_REP:
break; // OK.
default:
throw new IllegalArgumentException("Bad int tag " + tag);
}
this.value = value;
}

View File

@@ -27,6 +27,12 @@ class KeymasterLongArgument extends KeymasterArgument {
public KeymasterLongArgument(int tag, long value) {
super(tag);
switch (KeymasterDefs.getTagType(tag)) {
case KeymasterDefs.KM_LONG:
break; // OK.
default:
throw new IllegalArgumentException("Bad long tag " + tag);
}
this.value = value;
}