Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
openssh-portable/regress/keygen-comment.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
52 lines (48 sloc)
1.42 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Placed in the Public Domain. | |
| tid="Comment extraction from private key" | |
| S1="secret1" | |
| check_fingerprint () { | |
| file="$1" | |
| comment="$2" | |
| trace "fingerprinting $file" | |
| if ! ${SSHKEYGEN} -l -E sha256 -f $file > $OBJ/$t-fgp ; then | |
| fail "ssh-keygen -l failed for $t-key" | |
| fi | |
| if ! egrep "^([0-9]+) SHA256:(.){43} ${comment} \(.*\)\$" \ | |
| $OBJ/$t-fgp >/dev/null 2>&1 ; then | |
| fail "comment is not correctly recovered for $t-key" | |
| fi | |
| rm -f $OBJ/$t-fgp | |
| } | |
| for fmt in '' RFC4716 PKCS8 PEM; do | |
| for t in $SSH_KEYTYPES; do | |
| trace "generating $t key in '$fmt' format" | |
| rm -f $OBJ/$t-key* | |
| oldfmt="" | |
| case "$fmt" in | |
| PKCS8|PEM) oldfmt=1 ;; | |
| esac | |
| # Some key types like ssh-ed25519 and *@openssh.com are never | |
| # stored in old formats. | |
| case "$t" in | |
| ssh-ed25519|*openssh.com) test -z "$oldfmt" || continue ;; | |
| esac | |
| comment="foo bar" | |
| fmtarg="" | |
| test -z "$fmt" || fmtarg="-m $fmt" | |
| ${SSHKEYGEN} $fmtarg -N '' -C "${comment}" \ | |
| -t $t -f $OBJ/$t-key >/dev/null 2>&1 || \ | |
| fatal "keygen of $t in format $fmt failed" | |
| check_fingerprint $OBJ/$t-key "${comment}" | |
| check_fingerprint $OBJ/$t-key.pub "${comment}" | |
| # Output fingerprint using only private file | |
| trace "fingerprinting $t key using private key file" | |
| rm -f $OBJ/$t-key.pub | |
| if [ ! -z "$oldfmt" ] ; then | |
| # Comment cannot be recovered from old format keys. | |
| comment="no comment" | |
| fi | |
| check_fingerprint $OBJ/$t-key "${comment}" | |
| rm -f $OBJ/$t-key* | |
| done | |
| done |