dartssh 1.0.3+3

dartssh pub package Build Status Coverage Status documentation

Library providing a pure Dart SSH implementation.

Feature support #

Keys: Ed25519, ECDSA, RSA.
KEX: X25519DH, ECDH, DHGEX, DH.
Cipher: AES-CTR, AES-CBC.
MAC: MD5, SHA.
Compression: not yet supported.
Forwarding: TCP/IP, Agent.
Tunneling: dart:io Socket, dart:io WebSocket, package:http BaseClient.

Example #

See example/dartssh.dart.

Build #

Follow the same procedure as the continuous integration.

License #

dartssh is released under the terms of the MIT license. See LICENSE.

1.0.0+0 #

  • Initial release.

1.0.1+1 #

  • Add SSHTunneledSocketImpl, SSHTunneledWebSocketImpl, and SSHTunneledBaseClient.

1.0.2+2 #

  • Add example/README.md

1.0.3+3 #

  • Fix tunneled WebSocket issue.

example/README.md

dartssh example #

Library providing a pure Dart SSH implementation.

ssh #

dartssh.dart

    dart dartssh.dart -l user 10.0.0.1

sshd #

dartsshd.dart

    dart dartsshd.dart

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  dartssh: ^1.0.3+3

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:dartssh/agent.dart';
import 'package:dartssh/client.dart';
import 'package:dartssh/http.dart';
import 'package:dartssh/http_html.dart';
import 'package:dartssh/http_io.dart';
import 'package:dartssh/identity.dart';
import 'package:dartssh/kex.dart';
import 'package:dartssh/pem.dart';
import 'package:dartssh/protocol.dart';
import 'package:dartssh/serializable.dart';
import 'package:dartssh/server.dart';
import 'package:dartssh/socket.dart';
import 'package:dartssh/socket_html.dart';
import 'package:dartssh/socket_io.dart';
import 'package:dartssh/ssh.dart';
import 'package:dartssh/transport.dart';
import 'package:dartssh/websocket_html.dart';
import 'package:dartssh/websocket_io.dart';
import 'package:dartssh/zlib.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
55
Health:
Code health derived from static analysis. [more]
99
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
70
Overall:
Weighted score of the above. [more]
71
Learn more about scoring.

We analyzed this package on Feb 13, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.5

Health suggestions

Fix lib/pem.dart. (-0.50 points)

Analysis of lib/pem.dart reported 1 hint:

line 51 col 35: The value of the local variable 'procType' isn't used.

Fix lib/socket.dart. (-0.50 points)

Analysis of lib/socket.dart reported 1 hint:

line 7 col 8: Unused import: 'package:dartssh/socket_html.dart'.

Format lib/socket_io.dart.

Run dartfmt to format lib/socket_io.dart.

Maintenance issues and suggestions

No valid SDK. (-20 points)

The analysis could not detect a valid SDK that can use this package.

Support latest dependencies. (-10 points)

The version constraint in pubspec.yaml does not support the latest published versions for 1 dependency (asn1lib).

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
asn1lib ^0.5.11 0.5.15 0.6.0
convert ^2.1.1 2.1.1
http ^0.12.0+2 0.12.0+4
meta ^1.1.6 1.1.8
pedantic ^1.8.0 1.9.0
pointycastle ^1.0.1 1.0.2
tweetnacl ^0.3.2 0.3.2
validators ^2.0.0+1 2.0.0+1
Transitive dependencies
async 2.4.0
charcode 1.1.3
collection 1.14.12
fixnum 0.10.11
http_parser 3.1.3
path 1.6.4
source_span 1.6.0
string_scanner 1.0.5
term_glyph 1.1.0
typed_data 1.1.6
Dev dependencies
build_runner ^1.4.0
test ^1.6.5