aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-01-24 16:21:26 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-01-24 16:49:39 +0100
commitf586e158c4d8b87c98d0b62fc1db192732ee4ae2 (patch)
treea37b4d7e71fb83df296b5b0e4e861778696d2511 /sys/linux
parent5db97d84e9032fb37ed266873cea296ec6a6d6ce (diff)
sys/linux: add trusty hwkey service
Update #933
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/gen/386.go41
-rw-r--r--sys/linux/gen/amd64.go41
-rw-r--r--sys/linux/gen/arm.go41
-rw-r--r--sys/linux/gen/arm64.go41
-rw-r--r--sys/linux/gen/ppc64le.go41
-rw-r--r--sys/linux/trusty.txt25
-rw-r--r--sys/linux/trusty_386.const2
-rw-r--r--sys/linux/trusty_amd64.const2
-rw-r--r--sys/linux/trusty_arm.const2
-rw-r--r--sys/linux/trusty_arm64.const2
-rw-r--r--sys/linux/trusty_ppc64le.const2
11 files changed, 235 insertions, 5 deletions
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index c91d79b4c..b50433e54 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -89,6 +89,7 @@ var resources_386 = []*ResourceDesc{
{Name: "fd_trusty", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_avb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_avb"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_gatekeeper", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_gatekeeper"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_trusty_hwkey", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_hwkey"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km_secure", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km_secure"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_storage", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_storage"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -22279,6 +22280,26 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "password_handle"},
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "provided_password"},
}}},
+ {Key: StructKey{Name: "trusty_hwkey"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, FldName: "get"},
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, FldName: "derive"},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
{Key: StructKey{Name: "trusty_km_attest_key"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_km_attest_key", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "key_blob"},
&StructType{Key: StructKey{Name: "trusty_authorization_set"}, FldName: "attest_params"},
@@ -32208,6 +32229,11 @@ var syscalls_386 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 1074033280},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 30}, Kind: 2, Values: []string{"com.android.trusty.gatekeeper\x00"}}},
}},
+ {NR: 54, Name: "ioctl$TIPC_IOC_CONNECT_hwkey", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 1074033280},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 25}, Kind: 2, Values: []string{"com.android.trusty.hwkey\x00"}}},
+ }},
{NR: 54, Name: "ioctl$TIPC_IOC_CONNECT_keymaster_secure", CallName: "ioctl", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km_secure", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 1074033280},
@@ -34762,6 +34788,12 @@ var syscalls_386 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{2, 2050}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 4}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_gatekeeper", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 295, Name: "openat$trusty_hwkey", CallName: "openat", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 4}}, Val: 18446744073709551516},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{2, 2050}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 4}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 295, Name: "openat$trusty_km", CallName: "openat", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 4}}, Val: 18446744073709551516},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
@@ -40009,6 +40041,11 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "trusty_gatekeeper_msg"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "msg"},
}},
+ {NR: 4, Name: "write$trusty_hwkey", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "trusty_hwkey"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "msg"},
+ }},
{NR: 4, Name: "write$trusty_km", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "trusty_km_msg"}}},
@@ -45438,6 +45475,8 @@ var consts_386 = []ConstValue{
{Name: "TRUSTY_ERROR_UNKNOWN", Value: 3},
{Name: "TRUSTY_GK_ENROLL"},
{Name: "TRUSTY_GK_VERIFY", Value: 2},
+ {Name: "TRUSTY_HWKEY_DERIVE", Value: 2},
+ {Name: "TRUSTY_HWKEY_GET_KEYSLOT"},
{Name: "TRUSTY_KM_ABORT_OPERATION", Value: 16},
{Name: "TRUSTY_KM_ADD_RNG_ENTROPY", Value: 32},
{Name: "TRUSTY_KM_ATTEST_KEY", Value: 64},
@@ -47282,4 +47321,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "ef99674b7a38926844535442873c0f7e78db63a7"
+const revision_386 = "bbc22aa4699f199e3cc0289c712fea15bfe5cd87"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index f3d7c0446..42f8d9eb4 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -89,6 +89,7 @@ var resources_amd64 = []*ResourceDesc{
{Name: "fd_trusty", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_avb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_avb"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_gatekeeper", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_gatekeeper"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_trusty_hwkey", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_hwkey"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km_secure", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km_secure"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_storage", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_storage"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -22641,6 +22642,26 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "password_handle"},
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "provided_password"},
}}},
+ {Key: StructKey{Name: "trusty_hwkey"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, FldName: "get"},
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, FldName: "derive"},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
{Key: StructKey{Name: "trusty_km_attest_key"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_km_attest_key", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "key_blob"},
&StructType{Key: StructKey{Name: "trusty_authorization_set"}, FldName: "attest_params"},
@@ -32715,6 +32736,11 @@ var syscalls_amd64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1074295424},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 30}, Kind: 2, Values: []string{"com.android.trusty.gatekeeper\x00"}}},
}},
+ {NR: 16, Name: "ioctl$TIPC_IOC_CONNECT_hwkey", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1074295424},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 25}, Kind: 2, Values: []string{"com.android.trusty.hwkey\x00"}}},
+ }},
{NR: 16, Name: "ioctl$TIPC_IOC_CONNECT_keymaster_secure", CallName: "ioctl", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km_secure", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1074295424},
@@ -35269,6 +35295,12 @@ var syscalls_amd64 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 2050}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_gatekeeper", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 257, Name: "openat$trusty_hwkey", CallName: "openat", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 2050}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 257, Name: "openat$trusty_km", CallName: "openat", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
@@ -40521,6 +40553,11 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_gatekeeper_msg"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "msg"},
}},
+ {NR: 1, Name: "write$trusty_hwkey", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_hwkey"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "msg"},
+ }},
{NR: 1, Name: "write$trusty_km", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_km_msg"}}},
@@ -45964,6 +46001,8 @@ var consts_amd64 = []ConstValue{
{Name: "TRUSTY_ERROR_UNKNOWN", Value: 3},
{Name: "TRUSTY_GK_ENROLL"},
{Name: "TRUSTY_GK_VERIFY", Value: 2},
+ {Name: "TRUSTY_HWKEY_DERIVE", Value: 2},
+ {Name: "TRUSTY_HWKEY_GET_KEYSLOT"},
{Name: "TRUSTY_KM_ABORT_OPERATION", Value: 16},
{Name: "TRUSTY_KM_ADD_RNG_ENTROPY", Value: 32},
{Name: "TRUSTY_KM_ATTEST_KEY", Value: 64},
@@ -47809,4 +47848,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "967577a619d816cf7f54ea5962c337b5247f34e6"
+const revision_amd64 = "84d678c037b68865265e5a986f9f1e4f7f80eae5"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index 060627f59..10f7e37d2 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -89,6 +89,7 @@ var resources_arm = []*ResourceDesc{
{Name: "fd_trusty", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_avb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_avb"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_gatekeeper", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_gatekeeper"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_trusty_hwkey", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_hwkey"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km_secure", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km_secure"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_storage", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_storage"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -22101,6 +22102,26 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "password_handle"},
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "provided_password"},
}}},
+ {Key: StructKey{Name: "trusty_hwkey"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, FldName: "get"},
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, FldName: "derive"},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
{Key: StructKey{Name: "trusty_km_attest_key"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_km_attest_key", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "key_blob"},
&StructType{Key: StructKey{Name: "trusty_authorization_set"}, FldName: "attest_params"},
@@ -31902,6 +31923,11 @@ var syscalls_arm = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 1074033280},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 30}, Kind: 2, Values: []string{"com.android.trusty.gatekeeper\x00"}}},
}},
+ {NR: 54, Name: "ioctl$TIPC_IOC_CONNECT_hwkey", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 1074033280},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 25}, Kind: 2, Values: []string{"com.android.trusty.hwkey\x00"}}},
+ }},
{NR: 54, Name: "ioctl$TIPC_IOC_CONNECT_keymaster_secure", CallName: "ioctl", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km_secure", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 1074033280},
@@ -34428,6 +34454,12 @@ var syscalls_arm = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{2, 2050}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 4}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_gatekeeper", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 322, Name: "openat$trusty_hwkey", CallName: "openat", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 4}}, Val: 18446744073709551516},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{2, 2050}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 4}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 322, Name: "openat$trusty_km", CallName: "openat", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 4}}, Val: 18446744073709551516},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
@@ -39663,6 +39695,11 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "trusty_gatekeeper_msg"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "msg"},
}},
+ {NR: 4, Name: "write$trusty_hwkey", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "trusty_hwkey"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "msg"},
+ }},
{NR: 4, Name: "write$trusty_km", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "trusty_km_msg"}}},
@@ -45031,6 +45068,8 @@ var consts_arm = []ConstValue{
{Name: "TRUSTY_ERROR_UNKNOWN", Value: 3},
{Name: "TRUSTY_GK_ENROLL"},
{Name: "TRUSTY_GK_VERIFY", Value: 2},
+ {Name: "TRUSTY_HWKEY_DERIVE", Value: 2},
+ {Name: "TRUSTY_HWKEY_GET_KEYSLOT"},
{Name: "TRUSTY_KM_ABORT_OPERATION", Value: 16},
{Name: "TRUSTY_KM_ADD_RNG_ENTROPY", Value: 32},
{Name: "TRUSTY_KM_ATTEST_KEY", Value: 64},
@@ -46865,4 +46904,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "03db1fe7cf7f9f84aeead0cb002e09b648fe4805"
+const revision_arm = "86e450d5bcb098b8eba74d526cad76fdb2adec2c"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index a112eb9e8..4a7c4f757 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -89,6 +89,7 @@ var resources_arm64 = []*ResourceDesc{
{Name: "fd_trusty", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_avb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_avb"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_gatekeeper", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_gatekeeper"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_trusty_hwkey", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_hwkey"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km_secure", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km_secure"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_storage", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_storage"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -22458,6 +22459,26 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "password_handle"},
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "provided_password"},
}}},
+ {Key: StructKey{Name: "trusty_hwkey"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, FldName: "get"},
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, FldName: "derive"},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
{Key: StructKey{Name: "trusty_km_attest_key"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_km_attest_key", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "key_blob"},
&StructType{Key: StructKey{Name: "trusty_authorization_set"}, FldName: "attest_params"},
@@ -32312,6 +32333,11 @@ var syscalls_arm64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1074295424},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 30}, Kind: 2, Values: []string{"com.android.trusty.gatekeeper\x00"}}},
}},
+ {NR: 29, Name: "ioctl$TIPC_IOC_CONNECT_hwkey", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1074295424},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 25}, Kind: 2, Values: []string{"com.android.trusty.hwkey\x00"}}},
+ }},
{NR: 29, Name: "ioctl$TIPC_IOC_CONNECT_keymaster_secure", CallName: "ioctl", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km_secure", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 1074295424},
@@ -34801,6 +34827,12 @@ var syscalls_arm64 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 2050}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_gatekeeper", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 56, Name: "openat$trusty_hwkey", CallName: "openat", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 2050}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 56, Name: "openat$trusty_km", CallName: "openat", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
@@ -39976,6 +40008,11 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_gatekeeper_msg"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "msg"},
}},
+ {NR: 64, Name: "write$trusty_hwkey", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_hwkey"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "msg"},
+ }},
{NR: 64, Name: "write$trusty_km", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_km_msg"}}},
@@ -45363,6 +45400,8 @@ var consts_arm64 = []ConstValue{
{Name: "TRUSTY_ERROR_UNKNOWN", Value: 3},
{Name: "TRUSTY_GK_ENROLL"},
{Name: "TRUSTY_GK_VERIFY", Value: 2},
+ {Name: "TRUSTY_HWKEY_DERIVE", Value: 2},
+ {Name: "TRUSTY_HWKEY_GET_KEYSLOT"},
{Name: "TRUSTY_KM_ABORT_OPERATION", Value: 16},
{Name: "TRUSTY_KM_ADD_RNG_ENTROPY", Value: 32},
{Name: "TRUSTY_KM_ATTEST_KEY", Value: 64},
@@ -47167,4 +47206,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "199a3c175e09859a222d80cbaf97b19436cbee6f"
+const revision_arm64 = "e48488fcd479ab366d708a6c51927bef2f969d2b"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 8c5bd8edb..68c700dfd 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -88,6 +88,7 @@ var resources_ppc64le = []*ResourceDesc{
{Name: "fd_trusty", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_avb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_avb"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_gatekeeper", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_gatekeeper"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_trusty_hwkey", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_hwkey"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_km_secure", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_km_secure"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_trusty_storage", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_trusty", "fd_trusty_storage"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -22331,6 +22332,26 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "password_handle"},
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "provided_password"},
}}},
+ {Key: StructKey{Name: "trusty_hwkey"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, FldName: "get"},
+ &StructType{Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, FldName: "derive"},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
+ {Key: StructKey{Name: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "op_id", TypeSize: 4}}, Kind: 2, RangeEnd: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "status", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 4}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 4}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "payload", IsVarlen: true}, Kind: 2, NoZ: true},
+ }}},
{Key: StructKey{Name: "trusty_km_attest_key"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "trusty_km_attest_key", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "trusty_blob"}, FldName: "key_blob"},
&StructType{Key: StructKey{Name: "trusty_authorization_set"}, FldName: "attest_params"},
@@ -31351,6 +31372,11 @@ var syscalls_ppc64le = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2148037248},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 30}, Kind: 2, Values: []string{"com.android.trusty.gatekeeper\x00"}}},
}},
+ {NR: 54, Name: "ioctl$TIPC_IOC_CONNECT_hwkey", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2148037248},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 25}, Kind: 2, Values: []string{"com.android.trusty.hwkey\x00"}}},
+ }},
{NR: 54, Name: "ioctl$TIPC_IOC_CONNECT_keymaster_secure", CallName: "ioctl", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km_secure", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2148037248},
@@ -33400,6 +33426,12 @@ var syscalls_ppc64le = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 2050}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_gatekeeper", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 286, Name: "openat$trusty_hwkey", CallName: "openat", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "trusty_open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 2050}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 286, Name: "openat$trusty_km", CallName: "openat", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 21}, Kind: 2, Values: []string{"/dev/trusty-ipc-dev0\x00"}}},
@@ -38638,6 +38670,11 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_gatekeeper_msg"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "msg"},
}},
+ {NR: 4, Name: "write$trusty_hwkey", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_hwkey", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_hwkey"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "msg"},
+ }},
{NR: 4, Name: "write$trusty_km", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_trusty_km", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "trusty_km_msg"}}},
@@ -43907,6 +43944,8 @@ var consts_ppc64le = []ConstValue{
{Name: "TRUSTY_ERROR_UNKNOWN", Value: 3},
{Name: "TRUSTY_GK_ENROLL"},
{Name: "TRUSTY_GK_VERIFY", Value: 2},
+ {Name: "TRUSTY_HWKEY_DERIVE", Value: 2},
+ {Name: "TRUSTY_HWKEY_GET_KEYSLOT"},
{Name: "TRUSTY_KM_ABORT_OPERATION", Value: 16},
{Name: "TRUSTY_KM_ADD_RNG_ENTROPY", Value: 32},
{Name: "TRUSTY_KM_ATTEST_KEY", Value: 64},
@@ -44803,4 +44842,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "4c347d3d3b8fe455b6eacc8b53381f0993792df3"
+const revision_ppc64le = "914d598b39d901eab29dc0123dd87033f92e9128"
diff --git a/sys/linux/trusty.txt b/sys/linux/trusty.txt
index 4efa57b38..5561618ec 100644
--- a/sys/linux/trusty.txt
+++ b/sys/linux/trusty.txt
@@ -464,3 +464,28 @@ trusty_storage_rpmb_send_req {
# NEED: this should be a 512-aligned int in range [0:4096]
trusty_storage_rpmb_read_size = 0, 512, 1024, 1536, 1536, 2048, 2560, 3072, 3584, 4096
+
+### hwkey ###
+
+resource fd_trusty_hwkey[fd_trusty]
+
+openat$trusty_hwkey(fd const[AT_FDCWD], file ptr[in, string["/dev/trusty-ipc-dev0"]], flags flags[trusty_open_flags], mode const[0]) fd_trusty_hwkey
+ioctl$TIPC_IOC_CONNECT_hwkey(fd fd_trusty_hwkey, cmd const[TIPC_IOC_CONNECT], arg ptr[in, string["com.android.trusty.hwkey"]])
+write$trusty_hwkey(fd fd_trusty_hwkey, msg ptr[in, trusty_hwkey], len len[msg])
+
+trusty_hwkey [
+ get trusty_hwkey_msg[TRUSTY_HWKEY_GET_KEYSLOT, stringnoz]
+ derive trusty_hwkey_msg[TRUSTY_HWKEY_DERIVE, stringnoz]
+] [varlen]
+
+type trusty_hwkey_msg[CMD, PAYLOAD] {
+ cmd const[CMD, int32]
+ op_id int32[0:4]
+ status const[0, int32]
+ arg1 const[0, int32]
+ arg2 const[0, int32]
+ payload PAYLOAD
+}
+
+define TRUSTY_HWKEY_GET_KEYSLOT 0 << 1
+define TRUSTY_HWKEY_DERIVE 1 << 1
diff --git a/sys/linux/trusty_386.const b/sys/linux/trusty_386.const
index ed69fc1d4..c052c1e58 100644
--- a/sys/linux/trusty_386.const
+++ b/sys/linux/trusty_386.const
@@ -18,6 +18,8 @@ TRUSTY_ERROR_RETRY = 2
TRUSTY_ERROR_UNKNOWN = 3
TRUSTY_GK_ENROLL = 0
TRUSTY_GK_VERIFY = 2
+TRUSTY_HWKEY_DERIVE = 2
+TRUSTY_HWKEY_GET_KEYSLOT = 0
TRUSTY_KM_ABORT_OPERATION = 16
TRUSTY_KM_ADD_RNG_ENTROPY = 32
TRUSTY_KM_ATTEST_KEY = 64
diff --git a/sys/linux/trusty_amd64.const b/sys/linux/trusty_amd64.const
index d17106105..003adc155 100644
--- a/sys/linux/trusty_amd64.const
+++ b/sys/linux/trusty_amd64.const
@@ -18,6 +18,8 @@ TRUSTY_ERROR_RETRY = 2
TRUSTY_ERROR_UNKNOWN = 3
TRUSTY_GK_ENROLL = 0
TRUSTY_GK_VERIFY = 2
+TRUSTY_HWKEY_DERIVE = 2
+TRUSTY_HWKEY_GET_KEYSLOT = 0
TRUSTY_KM_ABORT_OPERATION = 16
TRUSTY_KM_ADD_RNG_ENTROPY = 32
TRUSTY_KM_ATTEST_KEY = 64
diff --git a/sys/linux/trusty_arm.const b/sys/linux/trusty_arm.const
index b25c93b1f..9a2d4b4a3 100644
--- a/sys/linux/trusty_arm.const
+++ b/sys/linux/trusty_arm.const
@@ -18,6 +18,8 @@ TRUSTY_ERROR_RETRY = 2
TRUSTY_ERROR_UNKNOWN = 3
TRUSTY_GK_ENROLL = 0
TRUSTY_GK_VERIFY = 2
+TRUSTY_HWKEY_DERIVE = 2
+TRUSTY_HWKEY_GET_KEYSLOT = 0
TRUSTY_KM_ABORT_OPERATION = 16
TRUSTY_KM_ADD_RNG_ENTROPY = 32
TRUSTY_KM_ATTEST_KEY = 64
diff --git a/sys/linux/trusty_arm64.const b/sys/linux/trusty_arm64.const
index 31207730e..9e0916d05 100644
--- a/sys/linux/trusty_arm64.const
+++ b/sys/linux/trusty_arm64.const
@@ -18,6 +18,8 @@ TRUSTY_ERROR_RETRY = 2
TRUSTY_ERROR_UNKNOWN = 3
TRUSTY_GK_ENROLL = 0
TRUSTY_GK_VERIFY = 2
+TRUSTY_HWKEY_DERIVE = 2
+TRUSTY_HWKEY_GET_KEYSLOT = 0
TRUSTY_KM_ABORT_OPERATION = 16
TRUSTY_KM_ADD_RNG_ENTROPY = 32
TRUSTY_KM_ATTEST_KEY = 64
diff --git a/sys/linux/trusty_ppc64le.const b/sys/linux/trusty_ppc64le.const
index ae09594a8..448e88284 100644
--- a/sys/linux/trusty_ppc64le.const
+++ b/sys/linux/trusty_ppc64le.const
@@ -18,6 +18,8 @@ TRUSTY_ERROR_RETRY = 2
TRUSTY_ERROR_UNKNOWN = 3
TRUSTY_GK_ENROLL = 0
TRUSTY_GK_VERIFY = 2
+TRUSTY_HWKEY_DERIVE = 2
+TRUSTY_HWKEY_GET_KEYSLOT = 0
TRUSTY_KM_ABORT_OPERATION = 16
TRUSTY_KM_ADD_RNG_ENTROPY = 32
TRUSTY_KM_ATTEST_KEY = 64