pubdev/dartssh/ssh
library
Classes
-
Cipher
-
-
Compression
-
If compression has been negotiated, the 'payload' field (and only it)
will be compressed using the negotiated algorithm.
-
Digester
-
Hashes SSH protocol data without first serializing it.
-
KEX
-
The key exchange method specifies how one-time session keys are generated for
encryption and for authentication, and how the server authentication is done.
-
Key
-
This protocol has been designed to operate with almost any public key
format, encoding, and algorithm (signature and/or encryption).
-
MAC
-
Data integrity is protected by including with each packet a MAC that is computed
from a shared secret, packet sequence number, and the contents of the packet.
Functions
-
applyBlockCipher(BlockCipher cipher, Uint8List m)
→ Uint8List
-
Transforms
m
by cipher
provided m.length
is a multiple of cipher.blockSize
.
-
applyCipherSuiteOverrides(String kex, String key, String cipher, String mac)
→ void
-
Limits cipher suite support to the specified parameter, if not null.
-
buildPreferenceCsv(NameFunction name, SupportedFunction supported, int end, [int startAfter = 0])
→ String
-
Each of the algorithm name-lists MUST be a comma-separated list of algorithm names.
Each supported (allowed) algorithm MUST be listed in order of preference, from most to least.
https://tools.ietf.org/html/rfc4253#section-7.1
-
computeExchangeHash(bool server, int kexMethod, Digest algo, String verC, String verS, Uint8List kexInitC, Uint8List kexInitS, Uint8List kS, BigInt K, DiffieHellman dh, EllipticCurveDiffieHellman ecdh, X25519DiffieHellman x25519dh)
→ Uint8List
-
The exchange hash is used to authenticate the key exchange and SHOULD be kept secret.
-
computeMAC(HMac mac, int macLen, Uint8List m, int seq, Uint8List k, int prefix)
→ Uint8List
-
Signs
seq
| m
with k
using mac
.
-
deriveChallenge(Uint8List sessionId, String userName, String serviceName, String methodName, String algoName, Uint8List secret)
→ Uint8List
-
https://tools.ietf.org/html/rfc4252#section-7
-
deriveKey(Digest algo, Uint8List sessionId, Uint8List exH, BigInt K, int id, int bytes)
→ Uint8List
-
https://tools.ietf.org/html/rfc4253#section-7.2
-
parseUri(String uriText)
→ Uri
-
Valid URLs include 127.0.0.1, 127.0.0.1:22, wss://webssh.
-
preferenceIntersection(String intersectCsv, String supportedCsv, [bool server = false])
→ String
-
Choose the first algorithm that satisfies the conditions.
-
verifyHostKey(Uint8List exH, int hostkeyType, Uint8List key, Uint8List sig)
→ bool
-
Verifies that
key
signed exH
producing sig
.