=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/PROTOCOL.u2f,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/usr.bin/ssh/PROTOCOL.u2f 2019/11/01 12:10:43 1.2 +++ src/usr.bin/ssh/PROTOCOL.u2f 2019/11/12 19:32:30 1.3 @@ -138,7 +138,7 @@ For use in the SSH protocol, we wish to avoid server-side parsing of ASN.1 format data in the pre-authentication attack surface. Therefore, the signature format used on the wire in SSH2_USERAUTH_REQUEST packets will -be reformatted slightly: +be reformatted slightly and the ecdsa_signature_blob value has the encoding: mpint r mpint s @@ -184,6 +184,10 @@ /* Flags */ #define SSH_SK_USER_PRESENCE_REQD 0x01 + /* Algs */ + #define SSH_SK_ECDSA 0x00 + #define SSH_SK_ED25519 0x01 + struct sk_enroll_response { uint8_t *public_key; size_t public_key_len; @@ -208,12 +212,12 @@ uint32_t sk_api_version(void); /* Enroll a U2F key (private key generation) */ - int sk_enroll(const uint8_t *challenge, size_t challenge_len, + int sk_enroll(int alg, const uint8_t *challenge, size_t challenge_len, const char *application, uint8_t flags, struct sk_enroll_response **enroll_response); /* Sign a challenge */ - int sk_sign(const uint8_t *message, size_t message_len, + int sk_sign(int alg, const uint8_t *message, size_t message_len, const char *application, const uint8_t *key_handle, size_t key_handle_len, uint8_t flags, struct sk_sign_response **sign_response);