Use correct signature format identifier when creating SSH signatures for

RSA with SHA256 & SHA512
This commit is contained in:
Christian Hagau
2018-04-25 00:00:00 +00:00
parent 4c251d57a1
commit 6b0ac338ca
3 changed files with 141 additions and 18 deletions

View File

@@ -194,10 +194,20 @@ public class SshAuthenticationService extends Service {
byte[] rawSignature = authResult.getSignature();
byte[] sshSignature;
try {
if (authSubKeyAlgorithm == PublicKeyAlgorithmTags.ECDSA) {
sshSignature = SshSignatureConverter.getSshSignatureEcDsa(rawSignature, authSubKeyCurveOid);
} else {
sshSignature = SshSignatureConverter.getSshSignature(rawSignature, authSubKeyAlgorithm);
switch (authSubKeyAlgorithm) {
case PublicKeyAlgorithmTags.ECDSA:
sshSignature = SshSignatureConverter.getSshSignatureEcDsa(rawSignature, authSubKeyCurveOid);
break;
case PublicKeyAlgorithmTags.RSA_SIGN:
case PublicKeyAlgorithmTags.RSA_GENERAL:
sshSignature = SshSignatureConverter.getSshSignatureRsa(rawSignature, hashAlgorithmTag);
break;
case PublicKeyAlgorithmTags.DSA:
case PublicKeyAlgorithmTags.EDDSA:
sshSignature = SshSignatureConverter.getSshSignature(rawSignature, authSubKeyAlgorithm);
break;
default:
throw new NoSuchAlgorithmException("Unknown algorithm");
}
} catch (NoSuchAlgorithmException e) {
return createExceptionErrorResult(SshAuthenticationApiError.INTERNAL_ERROR,