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.

Typedefs

NameFunction = String Function(int)
SupportedFunction = bool Function(int)