[ 
https://issues.apache.org/jira/browse/SSHD-1166?focusedWorklogId=603257&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-603257
 ]

ASF GitHub Bot logged work on SSHD-1166:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 27/May/21 20:55
            Start Date: 27/May/21 20:55
    Worklog Time Spent: 10m 
      Work Description: alex-sherwin opened a new pull request #198:
URL: https://github.com/apache/mina-sshd/pull/198


   This adds new OpenSshCertificateSigner & OpenSshCertificateSignRequest types 
which are used to use a CA KeyPair to sign a OpenSshCertificateSignRequest, 
resulting in an instance of OpenSshCertificate with the signature bytes filled 
in.
   
   The resulting OpenSshCertificate instance is completely valid and can be 
serialized over the wire using the Buffer.put*PublicKey functions or serialized 
using the existing OpenSSHKeyPairResourceWriter class.
   
   This change also:
   
   * Fixed a subtle bug observed in KeyUtils mapping data, where order matters 
for discovery in a few places.  There are places which iterate over the map 
entries and check if a unknown Key instance is an instance of the registered 
map PublicKey or PrivateKey type.  Unfortunately, some of these registrations 
register `java.security.PrivateKey`, which all private keys are an instance of, 
thus matching this registration (which may actually be wrong).  By making order 
matter here, all more specific registered types have a chance to succeed first.
   * Changed the data type of OpenSshCertificate.validAfter/validBefore from a 
long to Instant for better developer UX (the long value encoded is actually 
epoch seconds, which is uncommon for developers to work with in Java).  This 
change also makes it nullable, which helps with the concept of representing 
"forever" signed OpenSSH Certificates.
   * Added some constants to OpenSshCertificate to represent the magic forever 
epochs
   * Added a new OpenSshCertificate.CriticalOption data type and modified the 
criticalOptions/extensions types to use it.  This allows for proper 
representation of critical option (and extension) data, which are not simply 
strings (they are in fact key/value pairs).
   * Fixed OpenSSHCertificateDecoder encoding of a OpenSshPublicKey to call 
Buffer.putRawPublicKey, which properly prepends the key type before writing the 
key data.  Existing code paths for OpenSshCertificate usage didn't previously 
hit this, so it went unnoticed.
   * updated Buffer with specific encode/decode functions for the new 
OpenSshCertificate.CriticalOption data type.  The existing code was 
encoding/decoding Critical Options & Extensions incorrectly (as CSV data).  
This went unnoticed though, since generally speaking critical options are not 
used (so this was never checked by anything) and extensions are an optional 
implementation that must be ignored by a server if they are not recognized (so, 
silently ignored).  I added a unit test which now asserts decoding valid, 
existing OpenSSH certificates, and encoding/decoding ones which were generated 
by the features in this PR.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 603257)
    Remaining Estimate: 0h
            Time Spent: 10m

> Support generating OpenSSH client certificates
> ----------------------------------------------
>
>                 Key: SSHD-1166
>                 URL: https://issues.apache.org/jira/browse/SSHD-1166
>             Project: MINA SSHD
>          Issue Type: New Feature
>            Reporter: Alex Sherwin
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Support generating OpenSSH client certificates
> The OpenSSH certificate spec is defined here: 
> https://cvsweb.openbsd.org/src/usr.bin/ssh/PROTOCOL.certkeys?annotate=HEAD
> MINA already supports using OpenSSH client certs for publickey auth via 
> SSHD-1161
> This ticket is to support creating/generating OpenSSH client certificates



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to