aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/gen/386.go77
-rw-r--r--sys/linux/gen/amd64.go77
-rw-r--r--sys/linux/gen/arm.go77
-rw-r--r--sys/linux/gen/arm64.go77
-rw-r--r--sys/linux/gen/ppc64le.go77
-rw-r--r--sys/linux/key.txt44
-rw-r--r--sys/linux/key_386.const6
-rw-r--r--sys/linux/key_amd64.const6
-rw-r--r--sys/linux/key_arm.const6
-rw-r--r--sys/linux/key_arm64.const6
-rw-r--r--sys/linux/key_ppc64le.const6
11 files changed, 454 insertions, 5 deletions
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 3bf854dc8..c7419ad6b 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -8641,6 +8641,22 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "key_encrypted_load"}, FldName: "encrypted_load"},
&StructType{Key: StructKey{Name: "key_encrypted_update"}, FldName: "encrypted_update"},
}}},
+ {Key: StructKey{Name: "key_restriction"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "builtin", TypeSize: 16}, Kind: 2, Values: []string{"builtin_trusted\x00"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "secondary", TypeSize: 30}, Kind: 2, Values: []string{"builtin_and_secondary_trusted\x00"}},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring"}, FldName: "keyring"},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring_chain"}, FldName: "chain"},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring", TypeSize: 34}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "z", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring_chain"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring_chain", TypeSize: 40}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "chain", TypeSize: 7}, Kind: 2, Values: []string{":chain\x00"}},
+ }}},
{Key: StructKey{Name: "keyctl_dh_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_dh_params", TypeSize: 12}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "private", TypeSize: 4}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "prime", TypeSize: 4}},
@@ -8652,6 +8668,18 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "otherinfolen", TypeSize: 4}}, Buf: "otherinfo"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 32}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
}}},
+ {Key: StructKey{Name: "keyctl_pkey_info"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_info", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "enc", TypeSize: 4}, Kind: 2, Values: []string{"enc="}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "env_val", IsVarlen: true}, Kind: 2, SubKind: "keyctl_pkey_info_enc", Values: []string{"raw", "pkcs1", "oaep"}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "hash", TypeSize: 6}, Kind: 2, Values: []string{" hash="}, NoZ: true},
+ &StructType{Key: StructKey{Name: "alg_hash_name"}, FldName: "hash_val"},
+ }}},
+ {Key: StructKey{Name: "keyctl_pkey_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_params", TypeSize: 40}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key_id", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "in_len", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "out_len", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 28}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 7, RangeEnd: 7},
+ }}},
{Key: StructKey{Name: "kvm_arm_device_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "kvm_arm_device_addr", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "id", TypeSize: 8}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kvm_guest_addrs", FldName: "addr", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 4096, 8192, 12288, 16384, 20480, 24576, 53248, 61440, 1048576, 65536}},
@@ -33760,6 +33788,47 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "segments", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "kexec_segment"}}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kexec_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 196608, 4063232, 1310720, 1376256, 3276800, 2621440, 1441792, 2752512, 524288, 655360, 0}},
}},
+ {NR: 288, Name: "keyctl$KEYCTL_PKEY_DECRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 26},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 288, Name: "keyctl$KEYCTL_PKEY_ENCRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 25},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 288, Name: "keyctl$KEYCTL_PKEY_QUERY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 24},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg3", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "query", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 56, ArgDir: 1}, Kind: 1, RangeBegin: 56, RangeEnd: 56}},
+ }},
+ {NR: 288, Name: "keyctl$KEYCTL_PKEY_SIGN", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 27},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 288, Name: "keyctl$KEYCTL_PKEY_VERIFY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 28},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ }},
+ {NR: 288, Name: "keyctl$KEYCTL_RESTRICT_KEYRING", CallName: "keyctl", MissingArgs: 1, Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 29},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "type", TypeSize: 4, IsOptional: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2, SubKind: "key_type", Values: []string{"asymmetric\x00", "big_key\x00", "blacklist\x00", "ceph\x00", "cifs.idmap\x00", "cifs.spnego\x00", ".dead\x00", "dns_resolver\x00", "encrypted\x00", "id_legacy\x00", "id_resolver\x00", "keyring\x00", "logon\x00", "pkcs7_test\x00", ".request_key_auth\x00", "rxrpc\x00", "rxrpc_s\x00", "syzkaller\x00", "trusted\x00", "user\x00"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "restriction", TypeSize: 4, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "key_restriction"}}},
+ }},
{NR: 288, Name: "keyctl$assume_authority", CallName: "keyctl", MissingArgs: 3, Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 16},
&ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
@@ -42607,6 +42676,12 @@ var consts_386 = []ConstValue{
{Name: "KEYCTL_JOIN_SESSION_KEYRING", Value: 1},
{Name: "KEYCTL_LINK", Value: 8},
{Name: "KEYCTL_NEGATE", Value: 13},
+ {Name: "KEYCTL_PKEY_DECRYPT", Value: 26},
+ {Name: "KEYCTL_PKEY_ENCRYPT", Value: 25},
+ {Name: "KEYCTL_PKEY_QUERY", Value: 24},
+ {Name: "KEYCTL_PKEY_QUERY_SIZE", Value: 56},
+ {Name: "KEYCTL_PKEY_SIGN", Value: 27},
+ {Name: "KEYCTL_PKEY_VERIFY", Value: 28},
{Name: "KEYCTL_READ", Value: 11},
{Name: "KEYCTL_REJECT", Value: 19},
{Name: "KEYCTL_RESTRICT_KEYRING", Value: 29},
@@ -47435,4 +47510,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "e1337ff46a546061c6a6061490f38ee242f4b072"
+const revision_386 = "e55c1d4469260750efc083609d848c4225c9a24b"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index 8fe7b5f59..060b56dff 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -8748,6 +8748,22 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "key_encrypted_load"}, FldName: "encrypted_load"},
&StructType{Key: StructKey{Name: "key_encrypted_update"}, FldName: "encrypted_update"},
}}},
+ {Key: StructKey{Name: "key_restriction"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "builtin", TypeSize: 16}, Kind: 2, Values: []string{"builtin_trusted\x00"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "secondary", TypeSize: 30}, Kind: 2, Values: []string{"builtin_and_secondary_trusted\x00"}},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring"}, FldName: "keyring"},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring_chain"}, FldName: "chain"},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring", TypeSize: 34}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "z", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring_chain"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring_chain", TypeSize: 40}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "chain", TypeSize: 7}, Kind: 2, Values: []string{":chain\x00"}},
+ }}},
{Key: StructKey{Name: "keyctl_dh_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_dh_params", TypeSize: 12}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "private", TypeSize: 4}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "prime", TypeSize: 4}},
@@ -8760,6 +8776,18 @@ var structDescs_amd64 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 32}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
}}},
+ {Key: StructKey{Name: "keyctl_pkey_info"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_info", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "enc", TypeSize: 4}, Kind: 2, Values: []string{"enc="}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "env_val", IsVarlen: true}, Kind: 2, SubKind: "keyctl_pkey_info_enc", Values: []string{"raw", "pkcs1", "oaep"}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "hash", TypeSize: 6}, Kind: 2, Values: []string{" hash="}, NoZ: true},
+ &StructType{Key: StructKey{Name: "alg_hash_name"}, FldName: "hash_val"},
+ }}},
+ {Key: StructKey{Name: "keyctl_pkey_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_params", TypeSize: 40}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key_id", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "in_len", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "out_len", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 28}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 7, RangeEnd: 7},
+ }}},
{Key: StructKey{Name: "kvm_arm_device_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "kvm_arm_device_addr", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "id", TypeSize: 8}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kvm_guest_addrs", FldName: "addr", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 4096, 8192, 12288, 16384, 20480, 24576, 53248, 61440, 1048576, 65536}},
@@ -34267,6 +34295,47 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "segments", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "kexec_segment"}}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kexec_load_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 196608, 4063232, 1310720, 1376256, 3276800, 2621440, 1441792, 2752512, 524288, 655360, 0}},
}},
+ {NR: 250, Name: "keyctl$KEYCTL_PKEY_DECRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 26},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 250, Name: "keyctl$KEYCTL_PKEY_ENCRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 25},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 250, Name: "keyctl$KEYCTL_PKEY_QUERY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 24},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg3", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "query", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 56, ArgDir: 1}, Kind: 1, RangeBegin: 56, RangeEnd: 56}},
+ }},
+ {NR: 250, Name: "keyctl$KEYCTL_PKEY_SIGN", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 27},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 250, Name: "keyctl$KEYCTL_PKEY_VERIFY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 28},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ }},
+ {NR: 250, Name: "keyctl$KEYCTL_RESTRICT_KEYRING", CallName: "keyctl", MissingArgs: 1, Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 29},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "type", TypeSize: 8, IsOptional: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2, SubKind: "key_type", Values: []string{"asymmetric\x00", "big_key\x00", "blacklist\x00", "ceph\x00", "cifs.idmap\x00", "cifs.spnego\x00", ".dead\x00", "dns_resolver\x00", "encrypted\x00", "id_legacy\x00", "id_resolver\x00", "keyring\x00", "logon\x00", "pkcs7_test\x00", ".request_key_auth\x00", "rxrpc\x00", "rxrpc_s\x00", "syzkaller\x00", "trusted\x00", "user\x00"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "restriction", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "key_restriction"}}},
+ }},
{NR: 250, Name: "keyctl$assume_authority", CallName: "keyctl", MissingArgs: 3, Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 16},
&ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
@@ -43119,6 +43188,12 @@ var consts_amd64 = []ConstValue{
{Name: "KEYCTL_JOIN_SESSION_KEYRING", Value: 1},
{Name: "KEYCTL_LINK", Value: 8},
{Name: "KEYCTL_NEGATE", Value: 13},
+ {Name: "KEYCTL_PKEY_DECRYPT", Value: 26},
+ {Name: "KEYCTL_PKEY_ENCRYPT", Value: 25},
+ {Name: "KEYCTL_PKEY_QUERY", Value: 24},
+ {Name: "KEYCTL_PKEY_QUERY_SIZE", Value: 56},
+ {Name: "KEYCTL_PKEY_SIGN", Value: 27},
+ {Name: "KEYCTL_PKEY_VERIFY", Value: 28},
{Name: "KEYCTL_READ", Value: 11},
{Name: "KEYCTL_REJECT", Value: 19},
{Name: "KEYCTL_RESTRICT_KEYRING", Value: 29},
@@ -47962,4 +48037,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "76561d0a7b6dee60269bef9fedf506e062a2ec19"
+const revision_amd64 = "9d166e83d2dbb367024f73a14ca95d0030d8dc82"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index ff78599c6..e8b2e92a9 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -8641,6 +8641,22 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "key_encrypted_load"}, FldName: "encrypted_load"},
&StructType{Key: StructKey{Name: "key_encrypted_update"}, FldName: "encrypted_update"},
}}},
+ {Key: StructKey{Name: "key_restriction"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "builtin", TypeSize: 16}, Kind: 2, Values: []string{"builtin_trusted\x00"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "secondary", TypeSize: 30}, Kind: 2, Values: []string{"builtin_and_secondary_trusted\x00"}},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring"}, FldName: "keyring"},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring_chain"}, FldName: "chain"},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring", TypeSize: 34}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "z", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring_chain"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring_chain", TypeSize: 40}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "chain", TypeSize: 7}, Kind: 2, Values: []string{":chain\x00"}},
+ }}},
{Key: StructKey{Name: "keyctl_dh_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_dh_params", TypeSize: 12}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "private", TypeSize: 4}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "prime", TypeSize: 4}},
@@ -8652,6 +8668,18 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "otherinfolen", TypeSize: 4}}, Buf: "otherinfo"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 32}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
}}},
+ {Key: StructKey{Name: "keyctl_pkey_info"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_info", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "enc", TypeSize: 4}, Kind: 2, Values: []string{"enc="}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "env_val", IsVarlen: true}, Kind: 2, SubKind: "keyctl_pkey_info_enc", Values: []string{"raw", "pkcs1", "oaep"}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "hash", TypeSize: 6}, Kind: 2, Values: []string{" hash="}, NoZ: true},
+ &StructType{Key: StructKey{Name: "alg_hash_name"}, FldName: "hash_val"},
+ }}},
+ {Key: StructKey{Name: "keyctl_pkey_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_params", TypeSize: 40}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key_id", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "in_len", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "out_len", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 28}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 7, RangeEnd: 7},
+ }}},
{Key: StructKey{Name: "kvm_arm_device_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "kvm_arm_device_addr", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "id", TypeSize: 8}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kvm_guest_addrs", FldName: "addr", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 4096, 8192, 12288, 16384, 20480, 24576, 53248, 61440, 1048576, 65536}},
@@ -33441,6 +33469,47 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "segments", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "kexec_segment"}}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kexec_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 196608, 4063232, 1310720, 1376256, 3276800, 2621440, 1441792, 2752512, 524288, 655360, 0}},
}},
+ {NR: 311, Name: "keyctl$KEYCTL_PKEY_DECRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 26},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 311, Name: "keyctl$KEYCTL_PKEY_ENCRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 25},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 311, Name: "keyctl$KEYCTL_PKEY_QUERY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 24},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg3", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "query", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 56, ArgDir: 1}, Kind: 1, RangeBegin: 56, RangeEnd: 56}},
+ }},
+ {NR: 311, Name: "keyctl$KEYCTL_PKEY_SIGN", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 27},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 311, Name: "keyctl$KEYCTL_PKEY_VERIFY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 28},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ }},
+ {NR: 311, Name: "keyctl$KEYCTL_RESTRICT_KEYRING", CallName: "keyctl", MissingArgs: 1, Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 29},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "type", TypeSize: 4, IsOptional: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2, SubKind: "key_type", Values: []string{"asymmetric\x00", "big_key\x00", "blacklist\x00", "ceph\x00", "cifs.idmap\x00", "cifs.spnego\x00", ".dead\x00", "dns_resolver\x00", "encrypted\x00", "id_legacy\x00", "id_resolver\x00", "keyring\x00", "logon\x00", "pkcs7_test\x00", ".request_key_auth\x00", "rxrpc\x00", "rxrpc_s\x00", "syzkaller\x00", "trusted\x00", "user\x00"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "restriction", TypeSize: 4, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "key_restriction"}}},
+ }},
{NR: 311, Name: "keyctl$assume_authority", CallName: "keyctl", MissingArgs: 3, Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 4}}, Val: 16},
&ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
@@ -42246,6 +42315,12 @@ var consts_arm = []ConstValue{
{Name: "KEYCTL_JOIN_SESSION_KEYRING", Value: 1},
{Name: "KEYCTL_LINK", Value: 8},
{Name: "KEYCTL_NEGATE", Value: 13},
+ {Name: "KEYCTL_PKEY_DECRYPT", Value: 26},
+ {Name: "KEYCTL_PKEY_ENCRYPT", Value: 25},
+ {Name: "KEYCTL_PKEY_QUERY", Value: 24},
+ {Name: "KEYCTL_PKEY_QUERY_SIZE", Value: 56},
+ {Name: "KEYCTL_PKEY_SIGN", Value: 27},
+ {Name: "KEYCTL_PKEY_VERIFY", Value: 28},
{Name: "KEYCTL_READ", Value: 11},
{Name: "KEYCTL_REJECT", Value: 19},
{Name: "KEYCTL_RESTRICT_KEYRING", Value: 29},
@@ -47012,4 +47087,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "c4282a5fc9b45f29e7cf834d9201c902a4c33f5a"
+const revision_arm = "af32e4c48e665c44f07929273c6f263d9ae7fc71"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index 9b5f14d70..6de2a35d4 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -8748,6 +8748,22 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "key_encrypted_load"}, FldName: "encrypted_load"},
&StructType{Key: StructKey{Name: "key_encrypted_update"}, FldName: "encrypted_update"},
}}},
+ {Key: StructKey{Name: "key_restriction"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "builtin", TypeSize: 16}, Kind: 2, Values: []string{"builtin_trusted\x00"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "secondary", TypeSize: 30}, Kind: 2, Values: []string{"builtin_and_secondary_trusted\x00"}},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring"}, FldName: "keyring"},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring_chain"}, FldName: "chain"},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring", TypeSize: 34}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "z", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring_chain"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring_chain", TypeSize: 40}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "chain", TypeSize: 7}, Kind: 2, Values: []string{":chain\x00"}},
+ }}},
{Key: StructKey{Name: "keyctl_dh_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_dh_params", TypeSize: 12}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "private", TypeSize: 4}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "prime", TypeSize: 4}},
@@ -8760,6 +8776,18 @@ var structDescs_arm64 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 32}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
}}},
+ {Key: StructKey{Name: "keyctl_pkey_info"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_info", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "enc", TypeSize: 4}, Kind: 2, Values: []string{"enc="}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "env_val", IsVarlen: true}, Kind: 2, SubKind: "keyctl_pkey_info_enc", Values: []string{"raw", "pkcs1", "oaep"}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "hash", TypeSize: 6}, Kind: 2, Values: []string{" hash="}, NoZ: true},
+ &StructType{Key: StructKey{Name: "alg_hash_name"}, FldName: "hash_val"},
+ }}},
+ {Key: StructKey{Name: "keyctl_pkey_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_params", TypeSize: 40}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key_id", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "in_len", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "out_len", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 28}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 7, RangeEnd: 7},
+ }}},
{Key: StructKey{Name: "kvm_arm_device_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "kvm_arm_device_addr", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "id", TypeSize: 8}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kvm_guest_addrs", FldName: "addr", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 4096, 8192, 12288, 16384, 20480, 24576, 53248, 61440, 1048576, 65536}},
@@ -33856,6 +33884,47 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "segments", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "kexec_segment"}}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kexec_load_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 196608, 4063232, 1310720, 1376256, 3276800, 2621440, 1441792, 2752512, 524288, 655360, 0}},
}},
+ {NR: 219, Name: "keyctl$KEYCTL_PKEY_DECRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 26},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 219, Name: "keyctl$KEYCTL_PKEY_ENCRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 25},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 219, Name: "keyctl$KEYCTL_PKEY_QUERY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 24},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg3", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "query", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 56, ArgDir: 1}, Kind: 1, RangeBegin: 56, RangeEnd: 56}},
+ }},
+ {NR: 219, Name: "keyctl$KEYCTL_PKEY_SIGN", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 27},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 219, Name: "keyctl$KEYCTL_PKEY_VERIFY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 28},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ }},
+ {NR: 219, Name: "keyctl$KEYCTL_RESTRICT_KEYRING", CallName: "keyctl", MissingArgs: 1, Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 29},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "type", TypeSize: 8, IsOptional: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2, SubKind: "key_type", Values: []string{"asymmetric\x00", "big_key\x00", "blacklist\x00", "ceph\x00", "cifs.idmap\x00", "cifs.spnego\x00", ".dead\x00", "dns_resolver\x00", "encrypted\x00", "id_legacy\x00", "id_resolver\x00", "keyring\x00", "logon\x00", "pkcs7_test\x00", ".request_key_auth\x00", "rxrpc\x00", "rxrpc_s\x00", "syzkaller\x00", "trusted\x00", "user\x00"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "restriction", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "key_restriction"}}},
+ }},
{NR: 219, Name: "keyctl$assume_authority", CallName: "keyctl", MissingArgs: 3, Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 16},
&ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
@@ -42565,6 +42634,12 @@ var consts_arm64 = []ConstValue{
{Name: "KEYCTL_JOIN_SESSION_KEYRING", Value: 1},
{Name: "KEYCTL_LINK", Value: 8},
{Name: "KEYCTL_NEGATE", Value: 13},
+ {Name: "KEYCTL_PKEY_DECRYPT", Value: 26},
+ {Name: "KEYCTL_PKEY_ENCRYPT", Value: 25},
+ {Name: "KEYCTL_PKEY_QUERY", Value: 24},
+ {Name: "KEYCTL_PKEY_QUERY_SIZE", Value: 56},
+ {Name: "KEYCTL_PKEY_SIGN", Value: 27},
+ {Name: "KEYCTL_PKEY_VERIFY", Value: 28},
{Name: "KEYCTL_READ", Value: 11},
{Name: "KEYCTL_REJECT", Value: 19},
{Name: "KEYCTL_RESTRICT_KEYRING", Value: 29},
@@ -47312,4 +47387,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "4c5e0d87ff52638dd93a6bbac52c6b6f00954da9"
+const revision_arm64 = "65b47e2d00b30604ca983eeb49727ae7c7c4196b"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 1f91c1b63..a46bd66a7 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -8744,6 +8744,22 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "key_encrypted_load"}, FldName: "encrypted_load"},
&StructType{Key: StructKey{Name: "key_encrypted_update"}, FldName: "encrypted_update"},
}}},
+ {Key: StructKey{Name: "key_restriction"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "builtin", TypeSize: 16}, Kind: 2, Values: []string{"builtin_trusted\x00"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "secondary", TypeSize: 30}, Kind: 2, Values: []string{"builtin_and_secondary_trusted\x00"}},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring"}, FldName: "keyring"},
+ &StructType{Key: StructKey{Name: "key_restriction_keyring_chain"}, FldName: "chain"},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring", TypeSize: 34}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "z", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "key_restriction_keyring_chain"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "key_restriction_keyring_chain", TypeSize: 40}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "keyring", TypeSize: 15}, Kind: 2, Values: []string{"key_or_keyring:"}, NoZ: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", TypeSize: 18}, ArgFormat: 3},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "chain", TypeSize: 7}, Kind: 2, Values: []string{":chain\x00"}},
+ }}},
{Key: StructKey{Name: "keyctl_dh_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_dh_params", TypeSize: 12}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "private", TypeSize: 4}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "user_key", FldName: "prime", TypeSize: 4}},
@@ -8756,6 +8772,18 @@ var structDescs_ppc64le = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 32}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 8, RangeEnd: 8},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
}}},
+ {Key: StructKey{Name: "keyctl_pkey_info"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_info", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "enc", TypeSize: 4}, Kind: 2, Values: []string{"enc="}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "env_val", IsVarlen: true}, Kind: 2, SubKind: "keyctl_pkey_info_enc", Values: []string{"raw", "pkcs1", "oaep"}, NoZ: true},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "stringnoz", FldName: "hash", TypeSize: 6}, Kind: 2, Values: []string{" hash="}, NoZ: true},
+ &StructType{Key: StructKey{Name: "alg_hash_name"}, FldName: "hash_val"},
+ }}},
+ {Key: StructKey{Name: "keyctl_pkey_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "keyctl_pkey_params", TypeSize: 40}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key_id", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "in_len", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "out_len", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 28}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 7, RangeEnd: 7},
+ }}},
{Key: StructKey{Name: "kvm_arm_device_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "kvm_arm_device_addr", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "id", TypeSize: 8}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kvm_guest_addrs", FldName: "addr", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4, 4096, 8192, 12288, 16384, 20480, 24576, 53248, 61440, 1048576, 65536}},
@@ -32393,6 +32421,47 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "segments", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "kexec_segment"}}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "kexec_load_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 196608, 4063232, 1310720, 1376256, 3276800, 2621440, 1441792, 2752512, 524288, 655360, 0}},
}},
+ {NR: 271, Name: "keyctl$KEYCTL_PKEY_DECRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 26},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 271, Name: "keyctl$KEYCTL_PKEY_ENCRYPT", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 25},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 271, Name: "keyctl$KEYCTL_PKEY_QUERY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 24},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg3", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "query", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 56, ArgDir: 1}, Kind: 1, RangeBegin: 56, RangeEnd: 56}},
+ }},
+ {NR: 271, Name: "keyctl$KEYCTL_PKEY_SIGN", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 27},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }},
+ {NR: 271, Name: "keyctl$KEYCTL_PKEY_VERIFY", CallName: "keyctl", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 28},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_params"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "info", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "keyctl_pkey_info"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "inout", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "output", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ }},
+ {NR: 271, Name: "keyctl$KEYCTL_RESTRICT_KEYRING", CallName: "keyctl", MissingArgs: 1, Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 29},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "type", TypeSize: 8, IsOptional: true}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2, SubKind: "key_type", Values: []string{"asymmetric\x00", "big_key\x00", "blacklist\x00", "ceph\x00", "cifs.idmap\x00", "cifs.spnego\x00", ".dead\x00", "dns_resolver\x00", "encrypted\x00", "id_legacy\x00", "id_resolver\x00", "keyring\x00", "logon\x00", "pkcs7_test\x00", ".request_key_auth\x00", "rxrpc\x00", "rxrpc_s\x00", "syzkaller\x00", "trusted\x00", "user\x00"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "restriction", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "key_restriction"}}},
+ }},
{NR: 271, Name: "keyctl$assume_authority", CallName: "keyctl", MissingArgs: 3, Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 8}}, Val: 16},
&ResourceType{TypeCommon: TypeCommon{TypeName: "key", FldName: "key", TypeSize: 4}},
@@ -41221,6 +41290,12 @@ var consts_ppc64le = []ConstValue{
{Name: "KEYCTL_JOIN_SESSION_KEYRING", Value: 1},
{Name: "KEYCTL_LINK", Value: 8},
{Name: "KEYCTL_NEGATE", Value: 13},
+ {Name: "KEYCTL_PKEY_DECRYPT", Value: 26},
+ {Name: "KEYCTL_PKEY_ENCRYPT", Value: 25},
+ {Name: "KEYCTL_PKEY_QUERY", Value: 24},
+ {Name: "KEYCTL_PKEY_QUERY_SIZE", Value: 56},
+ {Name: "KEYCTL_PKEY_SIGN", Value: 27},
+ {Name: "KEYCTL_PKEY_VERIFY", Value: 28},
{Name: "KEYCTL_READ", Value: 11},
{Name: "KEYCTL_REJECT", Value: 19},
{Name: "KEYCTL_RESTRICT_KEYRING", Value: 29},
@@ -44950,4 +45025,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "ea43c338e14bea33c0928f245f9524d30f8733bf"
+const revision_ppc64le = "0f3d834d62ad737fc1d8bec9eb141fe2bd715a25"
diff --git a/sys/linux/key.txt b/sys/linux/key.txt
index 102b7fd73..b9811be69 100644
--- a/sys/linux/key.txt
+++ b/sys/linux/key.txt
@@ -45,6 +45,12 @@ keyctl$invalidate(code const[KEYCTL_INVALIDATE], key key)
keyctl$get_persistent(code const[KEYCTL_GET_PERSISTENT], uid uid, keyring keyring)
keyctl$dh_compute(code const[KEYCTL_DH_COMPUTE], params ptr[in, keyctl_dh_params], buffer buffer[out], buflen len[buffer], kdf ptr[in, keyctl_kdf_params, opt])
keyctl$restrict_keyring(code const[KEYCTL_RESTRICT_KEYRING], keyring keyring, type ptr[in, string[key_type], opt], restriction ptr[in, string, opt])
+keyctl$KEYCTL_PKEY_QUERY(code const[KEYCTL_PKEY_QUERY], key key, arg3 const[0], info ptr[in, string], query ptr[out, array[int8, KEYCTL_PKEY_QUERY_SIZE]])
+keyctl$KEYCTL_PKEY_ENCRYPT(code const[KEYCTL_PKEY_ENCRYPT], params ptr[in, keyctl_pkey_params], info ptr[in, keyctl_pkey_info, opt], inout ptr[in, array[int8]], output ptr[out, array[int8]])
+keyctl$KEYCTL_PKEY_DECRYPT(code const[KEYCTL_PKEY_DECRYPT], params ptr[in, keyctl_pkey_params], info ptr[in, keyctl_pkey_info, opt], inout ptr[in, array[int8]], output ptr[out, array[int8]])
+keyctl$KEYCTL_PKEY_SIGN(code const[KEYCTL_PKEY_SIGN], params ptr[in, keyctl_pkey_params], info ptr[in, keyctl_pkey_info, opt], inout ptr[in, array[int8]], output ptr[out, array[int8]])
+keyctl$KEYCTL_PKEY_VERIFY(code const[KEYCTL_PKEY_VERIFY], params ptr[in, keyctl_pkey_params], info ptr[in, keyctl_pkey_info, opt], inout ptr[in, array[int8]], output ptr[in, array[int8]])
+keyctl$KEYCTL_RESTRICT_KEYRING(code const[KEYCTL_RESTRICT_KEYRING], key key, type ptr[in, string[key_type], opt], restriction ptr[in, key_restriction, opt])
reqkey_keyring = KEY_REQKEY_DEFL_NO_CHANGE, KEY_REQKEY_DEFL_DEFAULT, KEY_REQKEY_DEFL_THREAD_KEYRING, KEY_REQKEY_DEFL_PROCESS_KEYRING, KEY_REQKEY_DEFL_SESSION_KEYRING, KEY_REQKEY_DEFL_USER_KEYRING, KEY_REQKEY_DEFL_USER_SESSION_KEYRING, KEY_REQKEY_DEFL_GROUP_KEYRING, KEY_REQKEY_DEFL_REQUESTOR_KEYRING
key_perm = KEY_POS_VIEW, KEY_POS_READ, KEY_POS_WRITE, KEY_POS_SEARCH, KEY_POS_LINK, KEY_POS_SETATTR, KEY_USR_VIEW, KEY_USR_READ, KEY_USR_WRITE, KEY_USR_SEARCH, KEY_USR_LINK, KEY_USR_SETATTR, KEY_GRP_VIEW, KEY_GRP_READ, KEY_GRP_WRITE, KEY_GRP_SEARCH, KEY_GRP_LINK, KEY_GRP_SETATTR, KEY_OTH_VIEW, KEY_OTH_READ, KEY_OTH_WRITE, KEY_OTH_SEARCH, KEY_OTH_LINK, KEY_OTH_SETATTR, KEY_PERM_UNDEF
@@ -112,5 +118,43 @@ key_encrypted_update {
z const[0, int8]
} [packed]
+keyctl_pkey_params {
+ key_id key
+# NEED: this is len of syscall input/output arguments. We don't have naming scheme to reference syscall arguments.
+# Need e.g. "len[syscall.input]", or some abbreviation like ".input" or "$.input".
+ in_len int32
+ out_len int32
+ __spare array[const[0, int32], 7]
+}
+
+keyctl_pkey_info {
+ enc stringnoz["enc="]
+ env_val stringnoz[keyctl_pkey_info_enc]
+ hash stringnoz[" hash="]
+ hash_val alg_hash_name
+} [packed]
+
key_encrypted_format = "ecryptfs", "default"
key_encrypted_key_type = "trusted:", "user:"
+keyctl_pkey_info_enc = "raw", "pkcs1", "oaep"
+
+key_restriction [
+ builtin string["builtin_trusted"]
+ secondary string["builtin_and_secondary_trusted"]
+ keyring key_restriction_keyring
+ chain key_restriction_keyring_chain
+] [varlen]
+
+key_restriction_keyring {
+ keyring stringnoz["key_or_keyring:"]
+ serial fmt[hex, key]
+ z const[0, int8]
+} [packed]
+
+key_restriction_keyring_chain {
+ keyring stringnoz["key_or_keyring:"]
+ serial fmt[hex, key]
+ chain string[":chain"]
+} [packed]
+
+define KEYCTL_PKEY_QUERY_SIZE sizeof(struct keyctl_pkey_query)
diff --git a/sys/linux/key_386.const b/sys/linux/key_386.const
index b7fe92aa2..72f2f99b0 100644
--- a/sys/linux/key_386.const
+++ b/sys/linux/key_386.const
@@ -13,6 +13,12 @@ KEYCTL_INVALIDATE = 21
KEYCTL_JOIN_SESSION_KEYRING = 1
KEYCTL_LINK = 8
KEYCTL_NEGATE = 13
+KEYCTL_PKEY_DECRYPT = 26
+KEYCTL_PKEY_ENCRYPT = 25
+KEYCTL_PKEY_QUERY = 24
+KEYCTL_PKEY_QUERY_SIZE = 56
+KEYCTL_PKEY_SIGN = 27
+KEYCTL_PKEY_VERIFY = 28
KEYCTL_READ = 11
KEYCTL_REJECT = 19
KEYCTL_RESTRICT_KEYRING = 29
diff --git a/sys/linux/key_amd64.const b/sys/linux/key_amd64.const
index 35a98f4b0..fe876a839 100644
--- a/sys/linux/key_amd64.const
+++ b/sys/linux/key_amd64.const
@@ -13,6 +13,12 @@ KEYCTL_INVALIDATE = 21
KEYCTL_JOIN_SESSION_KEYRING = 1
KEYCTL_LINK = 8
KEYCTL_NEGATE = 13
+KEYCTL_PKEY_DECRYPT = 26
+KEYCTL_PKEY_ENCRYPT = 25
+KEYCTL_PKEY_QUERY = 24
+KEYCTL_PKEY_QUERY_SIZE = 56
+KEYCTL_PKEY_SIGN = 27
+KEYCTL_PKEY_VERIFY = 28
KEYCTL_READ = 11
KEYCTL_REJECT = 19
KEYCTL_RESTRICT_KEYRING = 29
diff --git a/sys/linux/key_arm.const b/sys/linux/key_arm.const
index da7727450..4ea28f636 100644
--- a/sys/linux/key_arm.const
+++ b/sys/linux/key_arm.const
@@ -13,6 +13,12 @@ KEYCTL_INVALIDATE = 21
KEYCTL_JOIN_SESSION_KEYRING = 1
KEYCTL_LINK = 8
KEYCTL_NEGATE = 13
+KEYCTL_PKEY_DECRYPT = 26
+KEYCTL_PKEY_ENCRYPT = 25
+KEYCTL_PKEY_QUERY = 24
+KEYCTL_PKEY_QUERY_SIZE = 56
+KEYCTL_PKEY_SIGN = 27
+KEYCTL_PKEY_VERIFY = 28
KEYCTL_READ = 11
KEYCTL_REJECT = 19
KEYCTL_RESTRICT_KEYRING = 29
diff --git a/sys/linux/key_arm64.const b/sys/linux/key_arm64.const
index e21d7bd10..2f8c13c2f 100644
--- a/sys/linux/key_arm64.const
+++ b/sys/linux/key_arm64.const
@@ -13,6 +13,12 @@ KEYCTL_INVALIDATE = 21
KEYCTL_JOIN_SESSION_KEYRING = 1
KEYCTL_LINK = 8
KEYCTL_NEGATE = 13
+KEYCTL_PKEY_DECRYPT = 26
+KEYCTL_PKEY_ENCRYPT = 25
+KEYCTL_PKEY_QUERY = 24
+KEYCTL_PKEY_QUERY_SIZE = 56
+KEYCTL_PKEY_SIGN = 27
+KEYCTL_PKEY_VERIFY = 28
KEYCTL_READ = 11
KEYCTL_REJECT = 19
KEYCTL_RESTRICT_KEYRING = 29
diff --git a/sys/linux/key_ppc64le.const b/sys/linux/key_ppc64le.const
index 2fee33e84..1e8d70469 100644
--- a/sys/linux/key_ppc64le.const
+++ b/sys/linux/key_ppc64le.const
@@ -13,6 +13,12 @@ KEYCTL_INVALIDATE = 21
KEYCTL_JOIN_SESSION_KEYRING = 1
KEYCTL_LINK = 8
KEYCTL_NEGATE = 13
+KEYCTL_PKEY_DECRYPT = 26
+KEYCTL_PKEY_ENCRYPT = 25
+KEYCTL_PKEY_QUERY = 24
+KEYCTL_PKEY_QUERY_SIZE = 56
+KEYCTL_PKEY_SIGN = 27
+KEYCTL_PKEY_VERIFY = 28
KEYCTL_READ = 11
KEYCTL_REJECT = 19
KEYCTL_RESTRICT_KEYRING = 29