[
https://issues.apache.org/jira/browse/PROTON-2594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17873030#comment-17873030
]
Clifford Jansen commented on PROTON-2594:
-----------------------------------------
Sorry for the delay in responding. I feel the suggested patch is useful and
clear in its goal and implementation. Many thanks for your submission.
+1 for using the provider api.
I would like to comment on the pull request, however I am having difficulty
running a simple C test program. No doubt it is due to my lack of familiarity
with the standard, as well as with the layers of tooling to simulate HSM in
software for testing. From getting this program to run I hope to better
understand the implications of the patch for installed package requirements,
documentation changes, CI issues, and other differences (e.g. user password
prompts?).
I have tried using the pkcs11-provider-qpid-proton-bug-reproduction project as
a template to initialize softhsm, populate data with pkcs11-tool along with the
OPENSSL_CONF and SOFTHSM2_CONF. I cannot yet get it to run using Fedora 40,
which should be new enough to work with your patch.
I have also tried your suggested C++ program, but the setup stage hangs at the
"openssl storeutl", no matter what pin/password I supply, before even
exercising your code. A further indication that I get tripped up merely taking
baby steps with pkcs11.
I have attached the C program I am trying to use (pn2594.c). It simply makes
one client and one server connection. It allows you to specify each argument
to the OpenSSL domain setup routines for each side. For example, if run with
these arguments from qpid-proton/cpp/testdata/certs you can run with mutual TLS
(two ways), server side TLS, or no TLS:
/path/to/pn2594 amqps "client-certificate.pem" "client-private-key.pem"
"client-password" "ca-certificate.pem" "server-certificate.pem"
"server-private-key.pem" "server-password" "ca-certificate.pem"
/pat/to/pn2594 amqps "client-certificate.pem"
"client-private-key-no-password.pem" "" "ca-certificate.pem"
"server-certificate.pem" "server-private-key.pem" "server-password"
"ca-certificate.pem"
/path/to/pn2594 amqps "" "" "" "ca-certificate.pem" "server-certificate.pem"
"server-private-key.pem" "server-password" ""
/path/to/pn2594 amqp "" "" "" "" "" "" "" ""
I am trying to replace the first two examples "client private key" and "client
password" with a pkcs11 URI and PIN, i.e.
pkcs11-tool --module=/usr/lib64/libsofthsm2.so --token-label clitest --pin
tclientpw --label test --id 4444 --write-object
/r4/amqp/p/pkcs11/cj/cjcerts/cj-client-private-key-no-password.pem --type
privkey --usage-sign
pn2594 amqps "client-certificate.pem" "pkcs11:token=clitest;id=%44%44"
"tclientpw" "ca-certificate.pem" "server-certificate.pem"
"server-private-key.pem" "server-password" "ca-certificate.pem"
I would appreciate if you can confirm you can run this test with your pkcs11
patch and get it to work in the way you think it should be run (i.e. not
"fixing" my command usage or config files).
Step by step commands (or a captured terminal session) to reproduce would be
appreciated. Preferably starting with an empty softhsm, initializing it,
creating/loading the slot+token.
Hopefully from this exercise I can help you get the patch integrated.
Thanks.
> Use of HSM for crypto opterations with the private key of a TLS certificate
> ---------------------------------------------------------------------------
>
> Key: PROTON-2594
> URL: https://issues.apache.org/jira/browse/PROTON-2594
> Project: Qpid Proton
> Issue Type: New Feature
> Components: cpp-binding, proton-c
> Reporter: Franz Hollerer
> Priority: Major
> Attachments: pn2594.c
>
>
> We use a Hardware Security Module with PKCS#11 Interface (to be more
> specific: OP-TEE) as key store. This key store holds the public and private
> key for a TLS certificate for the purpose of client authentication.
> Is there a way to instruct proton-qpid to use the HSM for cryptographic
> operations with the private key?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]