public T putString(String string) { return putString(string, IOUtils.UTF8); }
public T putString(String string, Charset cs) { return putString(string.getBytes(cs)); }
public void putPubKeyIntoBuffer(PublicKey pk, Buffer<?> buf) { writePubKeyContentsIntoBuffer(pk, buf.putString(sType)); }
private static byte[] packMap(Map<String, String> map) { Buffer<?> buf = new Buffer.PlainBuffer(); List<String> keys = new ArrayList<String>(map.keySet()); Collections.sort(keys); for (String key : keys) { buf.putString(key); String value = map.get(key); buf.putString(packString(value)); } return buf.getCompactData(); } }
private static byte[] packList(Iterable<String> strings) { Buffer<?> buf = new Buffer.PlainBuffer(); for (String string : strings) { buf.putString(string); } return buf.getCompactData(); }
/** * Writes a char-array as an SSH string and then blanks it out. * <p/> * This is useful when a plaintext password needs to be sent. If {@code str} is {@code null}, an empty string is * written. * * @param str (null-ok) the string as a character array * * @return this */ @SuppressWarnings("unchecked") public T putSensitiveString(char[] str) { if (str == null) return putString(""); putUInt32(str.length); ensureCapacity(str.length); for (char c : str) data[wpos++] = (byte) c; Arrays.fill(str, ' '); return (T) this; }
public T putSignature(String sigFormat, byte[] sigData) { final byte[] sig = new PlainBuffer().putString(sigFormat).putBytes(sigData).getCompactData(); return putString(sig); }
static void writePubKeyContentsIntoBuffer(PublicKey pk, Buffer<?> buf) { final ECPublicKey ecdsa = (ECPublicKey) pk; byte[] encoded = SecgUtils.getEncoded(ecdsa.getW(), ecdsa.getParams().getCurve()); buf.putString("nistp" + Integer.toString(fieldSizeFromKey(ecdsa))) .putBytes(encoded); }
static void writePubKeyContentsIntoBuffer(PublicKey publicKey, KeyType innerKeyType, Buffer<?> buf) { Certificate<PublicKey> certificate = toCertificate(publicKey); buf.putBytes(certificate.getNonce()); innerKeyType.writePubKeyContentsIntoBuffer(certificate.getKey(), buf); buf.putUInt64(certificate.getSerial()) .putUInt32(certificate.getType()) .putString(certificate.getId()) .putBytes(packList(certificate.getValidPrincipals())) .putUInt64(epochFromDate(certificate.getValidAfter())) .putUInt64(epochFromDate(certificate.getValidBefore())) .putBytes(packMap(certificate.getCritOptions())) .putBytes(packMap(certificate.getExtensions())) .putString("") // reserved .putBytes(certificate.getSignatureKey()) .putBytes(certificate.getSignature()); }
public T putString(String string, Charset cs) { return putString(string.getBytes(cs)); }
public T putString(String string) { return putString(string.getBytes(IOUtils.UTF8)); }
public void putPubKeyIntoBuffer(PublicKey pk, Buffer<?> buf) { writePubKeyContentsIntoBuffer(pk, buf.putString(sType)); }
private static byte[] packMap(Map<String, String> map) { Buffer<?> buf = new Buffer.PlainBuffer(); List<String> keys = new ArrayList<String>(map.keySet()); Collections.sort(keys); for (String key : keys) { buf.putString(key); String value = map.get(key); buf.putString(packString(value)); } return buf.getCompactData(); } }
@Override public void putPubKeyIntoBuffer(PublicKey pk, Buffer<?> buf) { final RSAPublicKey rsaKey = (RSAPublicKey) pk; buf.putString(sType) .putMPInt(rsaKey.getPublicExponent()) // e .putMPInt(rsaKey.getModulus()); // n }
private static byte[] packList(Iterable<String> strings) { Buffer<?> buf = new Buffer.PlainBuffer(); for (String string : strings) { buf.putString(string); } return buf.getCompactData(); }
@Override public void putPubKeyIntoBuffer(PublicKey pk, Buffer<?> buf) { final ECPublicKey ecdsa = (ECPublicKey) pk; final java.security.spec.ECPoint point = ecdsa.getW(); final byte[] x = trimStartingZeros(point.getAffineX().toByteArray()); final byte[] y = trimStartingZeros(point.getAffineY().toByteArray()); buf.putString(sType) .putString(NISTP_CURVE) .putUInt32(1 + x.length + y.length) .putRawBytes(new byte[] { (byte) 0x04 }) .putRawBytes(x) .putRawBytes(y) ; }
public T putSignature(String sigFormat, byte[] sigData) { final byte[] sig = new PlainBuffer().putString(sigFormat).putBytes(sigData).getCompactData(); return putString(sig); }
static void writePubKeyContentsIntoBuffer(PublicKey pk, Buffer<?> buf) { final ECPublicKey ecdsa = (ECPublicKey) pk; byte[] encoded = SecgUtils.getEncoded(ecdsa.getW(), ecdsa.getParams().getCurve()); buf.putString("nistp" + Integer.toString(fieldSizeFromKey(ecdsa))) .putBytes(encoded); }
public T putSignature(String sigFormat, byte[] sigData) { final byte[] sig = new PlainBuffer().putString(sigFormat).putBytes(sigData).getCompactData(); return putString(sig); }
@Override public void putPubKeyIntoBuffer(PublicKey pk, Buffer<?> buf) { final DSAPublicKey dsaKey = (DSAPublicKey) pk; buf.putString(sType) .putMPInt(dsaKey.getParams().getP()) // p .putMPInt(dsaKey.getParams().getQ()) // q .putMPInt(dsaKey.getParams().getG()) // g .putMPInt(dsaKey.getY()); // y }