From: Petr Gotthard <petr.gotthard at centrum.cz>
To: tpm2@lists.01.org
Subject: [tpm2] Re: {External} Re: OpenSSL 3 and tpm2 provider...
Date: Tue, 26 Apr 2022 15:09:13 +0200 [thread overview]
Message-ID: <20220426150913.699DCD0C@centrum.cz> (raw)
In-Reply-To: DS7PR03MB5576C7FFBE1AA4907B99441C9AFB9@ds7pr03mb5576.namprd03.prod.outlook.com
[-- Attachment #1: Type: text/plain, Size: 6036 bytes --]
Could be separate the individual questions/issues, please? I am getting lost :)
The "command code not supported" error after Esys_CreateLoaded is a known issue:
https://github.com/tpm2-software/tpm2-openssl/issues/29
To set the hierarchy you may be able to use the "-pkeyopt parent" parameter.
Petr
______________________________________________________________
> Od: "Sievert, James" <james.sievert(a)bsci.com>
> Komu: "tpm2(a)lists.01.org" <tpm2(a)lists.01.org>
> Datum: 26.04.2022 14:57
> Předmět: [tpm2] Re: {External} Re: OpenSSL 3 and tpm2 provider...
>
>I was embarking on that and hit another snag:
>
> $ tpm2_getcap ecc-curves
> TPM2_ECC_NIST_P256: 0x3
> TPM2_ECC_BN_P256: 0x10
>
> $ openssl genpkey -provider tpm2 -algorithm EC -pkeyopt group:P-256 -out testkey.priv
> Warning: generating random key material may take a long time
> if the system has a poor entropy source
> WARNING:esys:src/tss2-esys/api/Esys_CreateLoaded.c:368:Esys_CreateLoaded_Finish() Received TPM Error
> ERROR:esys:src/tss2-esys/api/Esys_CreateLoaded.c:129:Esys_CreateLoaded() Esys Finish ErrorCode (0x000b0143)
> genpkey: Error generating EC key
> 403C86A7007F0000:error:4000000B:tpm2::cannot create key::-1:721219 rmt:error(2.0): command code not supported
>
>I’m curious, does one have control over the hierarchy under which the key is created?
>
>Also, related to my initial query, the TPM vendor has internal certificates stored at 0x1c0000a and 0x1c00002:
>
> 0x1c00002:
> name: 000bec00c657a4e2724101954c2c9d51ddd45c825c3997ec0786c3afeb0f7fca3ec7
> hash algorithm:
> friendly: sha256
> value: 0xB
> attributes:
> friendly: ppwrite|writedefine|ppread|ownerread|authread|no_da|written|platformcreate
> value: 0x1200762
> size: 1177
>
> 0x1c0000a:
> name: 000b2571404112c8aae1cde797c438d921093fc89b74d44564c25c296aaa26a6f041
> hash algorithm:
> friendly: sha256
> value: 0xB
> attributes:
> friendly: ppwrite|writedefine|ppread|ownerread|authread|no_da|written|platformcreate
> value: 0x1200762
> size: 781
>
>I cannot retrieve them using openssl x509:
>
> $ openssl x509 -provider tpm2 -provider default -in handle:0x1c0000a
> WARNING:esys:src/tss2-esys/api/Esys_NV_Read.c:315:Esys_NV_Read_Finish() Received TPM Error
> ERROR:esys:src/tss2-esys/api/Esys_NV_Read.c:105:Esys_NV_Read() Esys Finish ErrorCode (0x00000095)
> Could not read certificate from handle:0x1c0000a
> 405C04A14E7F0000:error:4000000C:tpm2::cannot load key::-1:149 tpm:handle(unk):structure is the wrong size
> Unable to load certificate
>
> $ openssl x509 -provider tpm2 -provider default -in handle:0x1c00002
> WARNING:esys:src/tss2-esys/api/Esys_NV_Read.c:315:Esys_NV_Read_Finish() Received TPM Error
> ERROR:esys:src/tss2-esys/api/Esys_NV_Read.c:105:Esys_NV_Read() Esys Finish ErrorCode (0x00000095)
> Could not read certificate from handle:0x1c00002
> 40DC7060527F0000:error:4000000C:tpm2::cannot load key::-1:149 tpm:handle(unk):structure is the wrong size
> Unable to load certificate
>
>This does work; however:
>
> bsci(a)ip-10-132-42-225:~/test$ tpm2_nvread -C p -s 781 0x1c0000a |openssl x509 -in /dev/stdin -inform der -noout -text
> Certificate:
> Data:
> Version: 3 (0x2)
> Serial Number: 756297432 (0x2d142ed8)
> Signature Algorithm: ecdsa-with-SHA256
> Issuer: C = DE, O = Infineon Technologies AG, OU = OPTIGA(TM) TPM2.0, CN = Infineon OPTIGA(TM) ECC Manufacturing CA 029
> Validity
> Not Before: Sep 29 02:49:58 2021 GMT
> Not After : Sep 29 02:49:58 2036 GMT
> …
>
>
>-----Original Message-----
>From: Petr Gotthard <petr.gotthard(a)centrum.cz>
>Sent: Tuesday, April 26, 2022 8:20 AM
>To: tpm2(a)lists.01.org
>Subject: [tpm2] Re: {External} Re: OpenSSL 3 and tpm2 provider...
>
>Oh, I never tested the `openssl cms` commands. There may be something missing from the OpenSSL. What CMS functions you need? Could you please suggest a sequence of openssl (and other commands) to verify all required CMS functions? Something like a new (set of) test(s), similar e.g. to https://github.com/tpm2-software/tpm2-openssl/blob/master/test/ecdsa_genpkey_auth.sh.
>
>Petr
>______________________________________________________________
>> Od: "Sievert, James" <james.sievert(a)bsci.com<mailto:james.sievert(a)bsci.com>>
>> Komu: "tpm2(a)lists.01.org<mailto:tpm2(a)lists.01.org>" <tpm2(a)lists.01.org<mailto:tpm2(a)lists.01.org>>
>> Datum: 26.04.2022 14:07
>> Předmět: [tpm2] Re: {External} Re: OpenSSL 3 and tpm2 provider...
>>
>>Thanks, Petr. That did the trick (actually, base was sufficient). In a similar vein, the corresponding private key is also held persistently in the TPM, handle 0x81800002. I'm now attempting the following:
>>
>> openssl cms -sign -provider tpm2 -provider default -in file.txt
>> -inkey handle:0x81800002 -signer handle:0x01000013
>>
>>I get no output, and a return value of 3. I get the same result if I reference the public key certificate as a file:
>>
>> openssl cms -sign -provider tpm2 -provider default -in file.txt
>> -inkey handle:0x81800002 -signer signer.pem
>>
>>Any insight on that would be appreciated…
>>
>_______________________________________________
>tpm2 mailing list -- tpm2(a)lists.01.org<mailto:tpm2(a)lists.01.org>
>To unsubscribe send an email to tpm2-leave(a)lists.01.org<mailto:tpm2-leave(a)lists.01.org> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
>
>
>----------
>
>_______________________________________________
>tpm2 mailing list -- tpm2(a)lists.01.org
>To unsubscribe send an email to tpm2-leave(a)lists.01.org
>%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
>
next reply other threads:[~2022-04-26 13:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-26 13:09 Petr Gotthard [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-04-26 14:24 [tpm2] Re: {External} Re: OpenSSL 3 and tpm2 provider Sievert, James
2022-04-26 12:57 Sievert, James
2022-04-26 12:20 Petr Gotthard
2022-04-26 12:06 Sievert, James
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220426150913.699DCD0C@centrum.cz \
--to=tpm2@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox