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?)?)