# openssh-protocol
Haskell implementation of openssh protocol primitives.
The openssh primitives are defined in [RFC4251](https://www.ietf.org/rfc/rfc4251.txt).
They are used by various parts of the openssh toolchain:
- [ssh](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL)
- [certificates](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkey)
- [agent](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.agent)
- [certkeys](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys)
- [key](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key)
- [krl](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.krl)
- [mux](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.mux)
### Stability
This library should be considered stable. Primitives will
be added but will not removed.
### Future
Right now, these are the building blocks required to implement the
higher level protocol components. They are useful, but the end goal
is to produce public implementations of all the protocol,
most importantly:
- Key pair encode/decode.
- Ceritificate encode/decode + signing.
- Agent message protocol.