NanoSSH Server overview
TrustCore SDK NanoSSH Server enables a secure connection to remote clients, which may be running NanoSSH Client or any other SSH client.
Features
Small memory footprint
Speeds integration and testing of complex cryptographic functions for your product
SSHv2 compliant
TCP/IP-neutral
Certificate support, per RFC 6187
Re-keying at will, based on a specified number of packets or a certain amount of time
Support for TPM-generated keys
OS- and platform-agnostic for easy portability
Threadless architecture, synchronous and asynchronous
Guaranteed GPL-free code that protects your intellectual property
Supported RFCs
NanoSSH supports the following RFC standards:
SSH File Transfer Protocol, v2, v3 and v4
RFC 4250: The Secure Shell (SSH) Protocol Assigned Numbers
RFC 4251: The Secure Shell (SSH) Protocol Architecture
RFC 4252: The Secure Shell (SSH) Authentication Protocol
RFC 4253: The Secure Shell (SSH) Transport Layer Protocol
RFC 4254: The Secure Shell (SSH) Connection Protocol (partially supported)
RFC 4344: The Secure Shell (SSH) Transport Layer Encryption Modes
RFC 4335: The Secure Shell (SSH) Session Channel Break Extension
RFC 4419: Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol
RFC 4432: RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol. For detailed information refer to section 7 of the RFC draft-ietf-secsh-filexfer-03.txt, SSH File Transfer Protocol (http://tools.ietf.org/html/draft-ietf-secsh-filexfer-03).
RFC 6187: X.509v3 Certificates for Secure Shell Authentication
RFC 6239: Suite B cryptographic suites for SSH
Draft-green-secsh-ecc-07: Elliptic-Curve Algorithm Integration in the Secure Shell Transport Layer
Draft-igoe-secsh-aes-gcm-02: AES Galois Counter Mode for the Secure Shell Transport Layer Protocol
Draft-josefsson-ssh-chacha20-poly1305-openssh-00 - ChaCha20 Poly1305 for the Secure Shell Transport Layer Protocol
Draft-ietf-curdle-ssh-ed25519-02 - Ed25519 for Secure Shell Transport Layer Protocol
APIs
TrustCore SDK NanoSSH server is implemented by the following ANSI C APIs:
Common code base: Functions common to all TrustCore SDK components; defined in src/common/mocana.h.
SSH synchronous server: Functions to implement synchronous communication between a NanoSSH server and any peer; defined in src/ssh/ssh.h.
SSH asynchronous server: Functions to implement asynchronous communication between a NanoSSH server and any peer; defined in src/ssh/ssh.h.
SFTP server: Functions to implement secure file transfer; defined in src/ssh/sftp.h and src/ssh/ssh_ftp.h.