Thanks. I also noticed ‘openssl x509’ has a -force_pubkey for this case. We’ll 
think about what is the best we can do.

—Max

> On Feb 1, 2021, at 11:23 AM, Anders Rundgren <anders.rundgren....@gmail.com> 
> wrote:
> 
> On 2021-02-01 16:01, Wei-Jun Wang wrote:
>>> On Feb 1, 2021, at 2:32 AM, Anders Rundgren <anders.rundgren....@gmail.com> 
>>> wrote:
>>> 
>>> On 2021-01-31 20:00, Wei-Jun Wang wrote:
>>>> https://bugs.openjdk.java.net/browse/JDK-8260693 filed.
>>> 
>>> Thanx!
>>> In the bug report you also write:
>>> 
>>>    We'll also need a way to generate this kind of certificate (or certreq).
>>>    There is no signature algorithm on XDH and we need to use EdDSA instead.
>>>    See 
>>> https://urldefense.com/v3/__https://tools.ietf.org/html/rfc8410*section-10.2__;Iw!!GqivPVa7Brio!NmY7j2ZVt-VJoTtZkQFA8tbhvHgLZazChGpwWEbycxxjAHm6aDkm8clW3eJ2H14Ugw$
>>>  .
>>> 
>>> AFAIK there is no standard for CSRs for encryption keys.  You need to use a 
>>> signature key that sort of vouches for the enclosed public key.  This key 
>>> may use any valid signature algorithm.
>> https://urldefense.com/v3/__https://tools.ietf.org/html/rfc2986*section-3__;Iw!!GqivPVa7Brio!Ijzb1F6vf9ECCLwUXYTNnZ0XEm7RWM5C17BPQO2k-YySNn8RpgCInbcsZ1pH23wpwA$
>>   says:
>>         1. A CertificationRequestInfo value containing a subject
>>            distinguished name, a subject public key, and optionally a
>>            set of attributes is constructed by an entity requesting
>>            certification.
>>         2. The CertificationRequestInfo value is signed with the subject
>>            entity's private key.  (See Section 4.2.)
>> It hasn’t said the “public key” and “private key” above should be a pair, 
>> though.
> 
> I believe this is sort of "implicit" because otherwise there would be a need 
> to indicate which key that was used in order to verify the signature.
> 
> CMC was probably designed to cope with this restriction.
> https://urldefense.com/v3/__https://tools.ietf.org/html/rfc5272*section-3.2__;Iw!!GqivPVa7Brio!Ijzb1F6vf9ECCLwUXYTNnZ0XEm7RWM5C17BPQO2k-YySNn8RpgCInbcsZ1pvrP3bEQ$
>  
>>> As a side note, my own applications use a key container attestation key for 
>>> *all* CSRs which is a more useful method than self-signed CSRs.
>> Interesting. Is there any document describing this feature?
> 
> WebAuthn appears to use this method although they only register public keys:
> https://urldefense.com/v3/__https://www.w3.org/TR/webauthn-2/*sctn-api__;Iw!!GqivPVa7Brio!Ijzb1F6vf9ECCLwUXYTNnZ0XEm7RWM5C17BPQO2k-YySNn8RpgCInbcsZ1olcwu24Q$
>  
> My particular take on this is a bit more elaborate because the attestation is 
> rather creating a session and shared key which permits secure multi-step key 
> (store) management operations:
> https://urldefense.com/v3/__https://cyberphone.github.io/doc/security/keygen2.html__;!!GqivPVa7Brio!Ijzb1F6vf9ECCLwUXYTNnZ0XEm7RWM5C17BPQO2k-YySNn8RpgCInbcsZ1rBveLZ7A$
>  
> Thanx,
> Anders
> 
>> Thanks,
>> Max
>>> 
>>> Regards,
>>> Anders
>>> 
>>> 
>>>> Thanks,
>>>> Max
>>>>> On Jan 31, 2021, at 2:12 AM, Anders Rundgren 
>>>>> <anders.rundgren....@gmail.com> wrote:
>>>>> 
>>>>> Since the JDK bug report tool does not include "keytool" I posted this 
>>>>> here.
>>>>> 
>>>>> Keytool for JDK 15 reports "Subject Public Key Algorithm: XDH key of 
>>>>> unknown size" for a certificate  containing the following public key:
>>>>> 
>>>>> 148:     SEQUENCE {
>>>>>  150:       SEQUENCE {
>>>>>  152:         OBJECT IDENTIFIER X25519 (1.3.101.110)
>>>>>             }
>>>>>  157:       BIT STRING, 32 bytes
>>>>>       0000: a3 5e 94 ef bd d0 41 86 90 07 87 9e 80 d0 a5 76 
>>>>> '.^....A........v'
>>>>>       0010: 0e a1 ba 82 19 2e c3 90 21 89 05 5a f6 d9 e6 50 
>>>>> '........!..Z...P'
>>>>>           }
>>>>> 
>>>>> which seems to be aligned with: 
>>>>> https://urldefense.com/v3/__https://tools.ietf.org/html/rfc8410*section-10.2__;Iw!!GqivPVa7Brio!NmY7j2ZVt-VJoTtZkQFA8tbhvHgLZazChGpwWEbycxxjAHm6aDkm8clW3eJ2H14Ugw$
>>>>> You can verify this issue by importing the certificate in the RFC.
>>>>> 
>>>>> Anders
> 

Reply via email to