OpenPGP card specification enhancement for ECDSA support

NIIBE Yutaka gniibe at
Fri Mar 1 07:22:22 CET 2013


This message is CC-ed to GnuPG-Devel List.

I am currently extending GnuPG so that it will support OpenPGP card
with ECDSA feature in future.

So far, following two things are modifications to the current OpenPGP
card specification.

Could you please give me comments?

(1) Algorithm Attributes


Byte  Length    Value
01    01        Algorithm ID  (RFC6637) 13 = ECDSA
02-   Variable  OID (RFC6637)
                  2A 86 48 CE 3D 03 01 07   NIST curve P-256
                  2B 81 04 00 22            NIST curve P-384
                  2B 81 04 00 23            NIST curve P-521

I think that use of OID here would be best, since OID is used to
identify the curve in OpenPGP ECC (RFC 6637).


Set of public key data objects for ECDSA

	81 xx Public key

              In the format of uncompressed point:

                 04 || x || y

              where x and y are coordinate of the point P = (x, y).
	      Big-endian, zero-padded.
              (c.f. Section 6. Conversion Primitives in RFC 6637)

I think that curve specification (For example, Generator, Order, etc.)
is defined by OID in the Algorithm Attributes, it's enough to return
the public key, EC point, and it's natural to use standard encoding
of uncompressed point.

More information about the Gnupg-devel mailing list