@Override public String getName() { return KeyType.ED25519.toString(); }
@Override public String getName() { return KeyType.ECDSA256.toString(); }
@Override public String getName() { return KeyType.ECDSA384.toString(); }
@Override public String getName() { return KeyType.DSA.toString(); }
@Override public String getName() { return KeyType.ECDSA521.toString(); }
@Override public String getName() { return KeyType.RSA.toString(); }
@Override public Signature create() { return new SignatureECDSA("SHA256withECDSA", KeyType.ECDSA256.toString()); }
@Override public Signature create() { return new SignatureECDSA("SHA384withECDSA", KeyType.ECDSA384.toString()); }
@Override public Signature create() { return new SignatureECDSA("SHA512withECDSA", KeyType.ECDSA521.toString()); }
public String getLine() { final StringBuilder line = new StringBuilder(); if (marker != null) line.append(marker.getMarkerString()).append(" "); line.append(getHostPart()); line.append(" ").append(type.toString()); line.append(" ").append(getKeyString(key)); return line.toString(); }
protected SSHPacket putPubKey(SSHPacket reqBuf) throws UserAuthException { PublicKey key; try { key = kProv.getPublic(); } catch (IOException ioe) { throw new UserAuthException("Problem getting public key from " + kProv, ioe); } // public key as 2 strings: [ key type | key blob ] reqBuf.putString(KeyType.fromKey(key).toString()) .putString(new Buffer.PlainBuffer().putPublicKey(key).getCompactData()); return reqBuf; }
protected SSHPacket putSig(SSHPacket reqBuf) throws UserAuthException { PrivateKey key; try { key = kProv.getPrivate(); } catch (IOException ioe) { throw new UserAuthException("Problem getting private key from " + kProv, ioe); } final String kt = KeyType.fromKey(key).toString(); Signature signature = Factory.Named.Util.create(params.getTransport().getConfig().getSignatureFactories(), kt); if (signature == null) throw new UserAuthException("Could not create signature instance for " + kt + " key"); signature.initSign(key); signature.update(new Buffer.PlainBuffer() .putString(params.getTransport().getSessionID()) .putBuffer(reqBuf) // & rest of the data for sig .getCompactData()); reqBuf.putSignature(kt, signature.encode(signature.sign())); return reqBuf; }
KeyType.fromKey(hostKey).toString()); signature.initVerify(hostKey); signature.update(H, 0, H.length);
private boolean parseGexReply(SSHPacket buffer) throws Buffer.BufferException, GeneralSecurityException, TransportException { byte[] K_S = buffer.readBytes(); byte[] f = buffer.readBytes(); byte[] sig = buffer.readBytes(); hostKey = new Buffer.PlainBuffer(K_S).readPublicKey(); dh.computeK(f); BigInteger k = dh.getK(); final Buffer.PlainBuffer buf = initializedBuffer() .putString(K_S) .putUInt32(minBits) .putUInt32(preferredBits) .putUInt32(maxBits) .putMPInt(((DH) dh).getP()) .putMPInt(((DH) dh).getG()) .putBytes(dh.getE()) .putBytes(f) .putMPInt(k); digest.update(buf.array(), buf.rpos(), buf.available()); H = digest.digest(); Signature signature = Factory.Named.Util.create(trans.getConfig().getSignatureFactories(), KeyType.fromKey(hostKey).toString()); signature.initVerify(hostKey); signature.update(H, 0, H.length); if (!signature.verify(sig)) throw new TransportException(DisconnectReason.KEY_EXCHANGE_FAILED, "KeyExchange signature verification failed"); return true; }
@Override public String getName() { return KeyType.DSA.toString(); }
@Override public String getName() { return KeyType.ED25519.toString(); }
@Override public Signature create() { return new SignatureECDSA("SHA512withECDSA", KeyType.ECDSA521.toString()); }
public String getLine() { final StringBuilder line = new StringBuilder(); if (marker != null) line.append(marker.getMarkerString()).append(" "); line.append(getHostPart()); line.append(" ").append(type.toString()); line.append(" ").append(getKeyString()); return line.toString(); }
public String getLine() { final StringBuilder line = new StringBuilder(); if (marker != null) line.append(marker.getMarkerString()).append(" "); line.append(getHostPart()); line.append(" ").append(type.toString()); line.append(" ").append(getKeyString(key)); return line.toString(); }