summaryrefslogtreecommitdiff
path: root/tools/crypto
diff options
context:
space:
mode:
authorMario Limonciello <mario.limonciello@amd.com>2023-08-29 10:07:58 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2023-09-15 18:29:45 +0800
commit2ad01eb5fad24627ab4e196dc54a220753b2238b (patch)
treebd4974b8a9afc4fe2953b50c5b90b00a70f10546 /tools/crypto
parent70f242c1933e9e881c13c31640bb6d56e8b7e738 (diff)
downloadlwn-2ad01eb5fad24627ab4e196dc54a220753b2238b.tar.gz
lwn-2ad01eb5fad24627ab4e196dc54a220753b2238b.zip
crypto: ccp - Fix sample application signature passing
When parameters are sent the PSP returns back it's own signature for the application to verify the authenticity of the result. Display this signature to the caller instead of the one the caller sent. Fixes: f40d42f116cf ("crypto: ccp - Add a sample python script for Dynamic Boost Control") Fixes: febe3ed3222f ("crypto: ccp - Add a sample library for ioctl use") Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'tools/crypto')
-rw-r--r--tools/crypto/ccp/dbc.c1
-rw-r--r--tools/crypto/ccp/dbc.py5
2 files changed, 4 insertions, 2 deletions
diff --git a/tools/crypto/ccp/dbc.c b/tools/crypto/ccp/dbc.c
index 7774e981849f..a807df0f0597 100644
--- a/tools/crypto/ccp/dbc.c
+++ b/tools/crypto/ccp/dbc.c
@@ -68,5 +68,6 @@ int process_param(int fd, int msg_index, __u8 *signature, int *data)
return errno;
*data = tmp.param;
+ memcpy(signature, tmp.signature, sizeof(tmp.signature));
return 0;
}
diff --git a/tools/crypto/ccp/dbc.py b/tools/crypto/ccp/dbc.py
index 3956efe7537a..2b91415b1940 100644
--- a/tools/crypto/ccp/dbc.py
+++ b/tools/crypto/ccp/dbc.py
@@ -57,7 +57,8 @@ def process_param(device, message, signature, data=None):
if type(message) != tuple:
raise ValueError("Expected message tuple")
arg = ctypes.c_int(data if data else 0)
- ret = lib.process_param(device.fileno(), message[0], signature, ctypes.pointer(arg))
+ sig = ctypes.create_string_buffer(signature, len(signature))
+ ret = lib.process_param(device.fileno(), message[0], ctypes.pointer(sig), ctypes.pointer(arg))
if ret:
handle_error(ret)
- return arg, signature
+ return arg.value, sig.value