From f586e158c4d8b87c98d0b62fc1db192732ee4ae2 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 24 Jan 2019 16:21:26 +0100 Subject: sys/linux: add trusty hwkey service Update #933 --- sys/linux/gen/386.go | 41 ++++++++++++++++++++++++++++++++++++++++- sys/linux/gen/amd64.go | 41 ++++++++++++++++++++++++++++++++++++++++- sys/linux/gen/arm.go | 41 ++++++++++++++++++++++++++++++++++++++++- sys/linux/gen/arm64.go | 41 ++++++++++++++++++++++++++++++++++++++++- sys/linux/gen/ppc64le.go | 41 ++++++++++++++++++++++++++++++++++++++++- sys/linux/trusty.txt | 25 +++++++++++++++++++++++++ sys/linux/trusty_386.const | 2 ++ sys/linux/trusty_amd64.const | 2 ++ sys/linux/trusty_arm.const | 2 ++ sys/linux/trusty_arm64.const | 2 ++ sys/linux/trusty_ppc64le.const | 2 ++ 11 files changed, 235 insertions(+), 5 deletions(-) (limited to 'sys/linux') 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 -- cgit mrf-deployment