The cl-rfc4251 Reference Manual

This is the cl-rfc4251 Reference Manual, version 0.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:37:41 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-rfc4251

Common Lisp library for encoding and decoding data in RFC 4251 compliant format

Long Name

cl-rfc4251

Maintainer

Marin Atanasov Nikolov <>

Author

Marin Atanasov Nikolov <>

Home Page

https://github.com/dnaeon/cl-rfc4251

Source Control

https://github.com/dnaeon/cl-rfc4251

Bug Tracker

https://github.com/dnaeon/cl-rfc4251

License

BSD 2-Clause

Long Description

## cl-rfc4251

‘cl-rfc4251‘ is a Common Lisp system, which provides support for
parsing [RFC 4251][RFC 4251] encoded binary
data, as described in the [Data Type Representations Used in the SSH Protocols](https://tools.ietf.org/html/rfc4251#section-5) section of
the document.

## Requirements

* [Quicklisp][Quicklisp]

## Installation

Clone the [cl-rfc4251][cl-rfc4251] repo in
your [Quicklisp local-projects
directory][Quicklisp FAQ].

“‘ shell
git clone https://github.com/dnaeon/cl-rfc4251.git
“‘

Load the system.

“‘ shell
CL-USER> (ql:quickload :cl-rfc4251)
“‘

## Supported Data Types

The following table summarizes the supported data types, that can be
decoded or encoded by the respective ‘RFC4251:DECODE‘ and
‘RFC4251:ENCODE‘ generic functions. The ‘RFC 4251‘ and ‘cl-rfc4251
type‘ columns specify the mapping between the RFC-defined data type
name and the keywords used to decode or encode a given value in Common
Lisp.

| RFC 4251 | cl-rfc4251 type | Description | |————-|—————–|————————————————–|
| ‘byte‘ | ‘:byte‘ | An arbitrary 8-bit value (octet) |
| ‘byte[n]‘ | ‘:raw-bytes‘ | A sequence of raw bytes up to a given length |
| ‘boolean‘ | ‘:boolean‘ | A boolean value |
| ‘uint32‘ | ‘:uint32‘ | Unsigned 32-bit integer in big-endian byte order |
| ‘uint64‘ | ‘:uint64‘ | Unsigned 64-bit integer in big-endian byte order |
| ‘string‘ | ‘:string‘ | Arbitrary length string |
| ‘mpint‘ | ‘:mpint‘ | Multiple precision integer |
| ‘name-list‘ | ‘:name-list‘ | A string of comma-separated names |

In addition to the above data types the ‘cl-rfc4251‘ system supports
encoding and decoding of these types as well. Note, that these are not
mentioned in RFC 4251.

| cl-rfc4251 type | Description | |—————–|——————————————————-|
| ‘:uint16-be‘ | Unsigned 16-bit integer in big-endian byte order |
| ‘:uint16-le‘ | Unsigned 16-bit integer in little-endian byte order |
| ‘:uint32-le‘ | Unsigned 32-bit integer in little-endian byte order |
| ‘:uint64-le‘ | Unsigned 64-bit integer in little-endian byte order |
| ‘:c-string‘ | NULL-terminated C string |
| ‘:buffer‘ | A buffer similar to ‘:string‘, but contains raw bytes |

## Usage

The following section provides various examples showing how to encode
and decode values using the ‘cl-rfc4251‘ system.

For additional examples, make sure to check the [test
suite](./t/test-suite.lisp).

### Decoding

The ‘cl-rfc4251‘ system exports the generic functions ‘DECODE‘ and
‘ENCODE‘ via the ‘CL-RFC4251‘ (also available via its nickname
‘RFC4251‘) package.

The ‘RFC4251:DECODE‘ function takes a *type* and a *binary stream*
from which to decode. Some types also take additional keyword
parameters (e.g. ‘:raw-bytes‘), which allow to specify the number of
bytes to be decoded.

In all of the examples that follow below ‘s‘ represents a binary
stream. You can also use the ‘RFC4251:MAKE-BINARY-INPUT-STREAM‘
function to create a binary stream, which uses a vector for the
underlying data.

‘RFC4251:DECODE‘ returns multiple values – the actual decoded value,
and the number of bytes that were read from the binary stream in order
to produce the value.

Decode raw bytes with a given length from the binary stream ‘s‘.

“‘ common-lisp
CL-USER> (rfc4251:decode :raw-bytes s :length 4)
#(0 0 0 8)
4
“‘

The second value in above example indicates the actual bytes that were
read from the binary stream.

This example decodes a 16-bit unsigned integer represented in
big-endian byte order from a given binary stream ‘s‘.

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-input-stream #(0 #x80))))
(rfc4251:decode :uint16 s))
128
2
“‘

The following example decodes a multiple precision integer represented
in two’s complement format from the binary stream ‘s‘.

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-input-stream #(#x00 #x00 #x00 #x05 #xFF #x21 #x52 #x41 #x11)))) (rfc4251:decode :mpint s))
-3735928559
9
“‘

The second value in the example above, which specifies the number of
bytes being read is ‘9‘, because we had to read one ‘uint32‘ value
(the header) and additional ‘5‘ bytes (the value partition).

A bytes buffer is similar to a ‘:string‘, except that the bytes are
not explicitely converted to a string value, but instead the result
contains the raw bytes.

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-input-stream #(#x00 #x00 #x00 #x04 #x0A #x0B #x0C #x0D)))) (rfc4251:decode :buffer s))
#(10 11 12 13)
8
“‘

### Encoding

The ‘RFC4251:ENCODE‘ generic function is used to encode data. The
function returns the total number of bytes written to the binary
stream.

You can also use the ‘RFC4251:MAKE-BINARY-OUTPUT-STREAM‘ function to
create a binary stream, if needed.

The following example encodes an unsigned 16-bit integer value.

“‘ common-lisp
CL-USER> (defparameter *s* (rfc4251:make-binary-output-stream))
*S*
CL-USER> (rfc4251:encode :uint16 42 *s*)
2
CL-USER> (rfc4251:get-binary-stream-bytes *s*)
#(0 42)
“‘

Note in the second expression the number of bytes that were written.

Above example, can be written this way as well, if you only care about
the actual encoded bytes.

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :uint16 42 s) ;; <- Encode the value into the stream (rfc4251:get-binary-stream-bytes s)) ;; <- Return the contents of the stream
#(0 42)
“‘

The following example encodes a string value.

“‘ common-lisp
CL-USER> (defparameter *s* (rfc4251:make-binary-output-stream))
*S*
CL-USER> (rfc4251:encode :string "Hello, World!" *s*)
17
CL-USER> (rfc4251:get-binary-stream-bytes *s*)
#(0 0 0 13 72 101 108 108 111 44 32 87 111 114 108 100 33)
“‘

The result from the second expression here is ‘17‘, which includes the
‘4‘ (uint32) bytes required for the header (representing the bytes that follow),
plus the additional ‘13‘ bytes representing the actual string data.

The following examples show how to encode ‘mpint‘ values according to
[RFC 4251][RFC 4251].

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :mpint #x00 s) ;; <- Encode the zero value (rfc4251:get-binary-stream-bytes s)) ;; <- Get the encoded data
#(0 0 0 0)
“‘

Here are a few more examples taken directly from the examples described in
[RFC 4251][RFC 4251].

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :mpint #x-DEADBEEF s)
(rfc4251:get-binary-stream-bytes s))
#(0 0 0 5 255 33 82 65 17)
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :mpint #x80 s)
(rfc4251:get-binary-stream-bytes s))
#(0 0 0 2 0 128)
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :mpint #x9A378F9B2E332A7 s)
(rfc4251:get-binary-stream-bytes s))
#(0 0 0 8 9 163 120 249 178 227 50 167)
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :mpint #x-1234 s)
(rfc4251:get-binary-stream-bytes s))
#(0 0 0 2 237 204)
“‘

Encoding a bytes buffer. A bytes buffer is preceeded by its length,
similar to the way ‘:string‘ values are being encoded.

“‘ common-lisp
CL-USER> (let ((s (rfc4251:make-binary-output-stream)))
(rfc4251:encode :buffer #(#x0A #x0B #x0C #x0D) s)
(rfc4251:get-binary-stream-bytes s))
#(0 0 0 4 10 11 12 13)
“‘

## Tests

Tests are provided as part of the ‘cl-rfc4251.test‘ system.

In order to run the tests you can evaluate the following expressions.

“‘ common-lisp
CL-USER> (ql:quickload :cl-rfc4251.test)
CL-USER> (asdf:test-system :cl-rfc4251.test)
“‘

Or you can run the tests in a Docker container instead.

First, build the Docker image.

“‘ shell
docker build -t cl-rfc4251 .
“‘

Run the tests.

“‘ shell
docker run –rm cl-rfc4251
“‘

## Contributing

‘cl-rfc4251‘ is hosted on
[Github](https://github.com/dnaeon/cl-rfc4251). Please contribute by
reporting issues, suggesting features or by sending patches using pull
requests.

## Authors

* Marin Atanasov Nikolov (dnaeon@gmail.com)

## License

This project is Open Source and licensed under the [BSD License](http://opensource.org/licenses/BSD-2-Clause).

[RFC 4251]: https://tools.ietf.org/html/rfc4251
[Quicklisp]: https://www.quicklisp.org/beta/
[Quicklisp FAQ]: https://www.quicklisp.org/beta/faq.html
[cl-rfc4251]: https://github.com/dnaeon/cl-rfc4251

Version

0.1.0

Dependencies
  • trivial-gray-streams (system).
  • uiop (system).
Source

cl-rfc4251.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 cl-rfc4251/util

Source

cl-rfc4251.asd.

Parent Component

cl-rfc4251 (system).

Child Component

util.lisp (file).


3.2 cl-rfc4251/core

Dependency

util (module).

Source

cl-rfc4251.asd.

Parent Component

cl-rfc4251 (system).

Child Components

3.3 cl-rfc4251/client-package

Dependency

core (module).

Source

cl-rfc4251.asd.

Parent Component

cl-rfc4251 (system).

Child Component

package.lisp (file).


4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 cl-rfc4251/cl-rfc4251.asd

Source

cl-rfc4251.asd.

Parent Component

cl-rfc4251 (system).

ASDF Systems

cl-rfc4251.

Packages

cl-rfc4251-system.


4.1.2 cl-rfc4251/util/util.lisp

Source

cl-rfc4251.asd.

Parent Component

util (module).

Packages

cl-rfc4251.util.

Public Interface

4.1.3 cl-rfc4251/core/decoder.lisp

Source

cl-rfc4251.asd.

Parent Component

core (module).

Packages

cl-rfc4251.decoder.

Public Interface

decode (generic function).


4.1.4 cl-rfc4251/core/encoder.lisp

Source

cl-rfc4251.asd.

Parent Component

core (module).

Packages

cl-rfc4251.encoder.

Public Interface

encode (generic function).


4.1.5 cl-rfc4251/core/stream.lisp

Source

cl-rfc4251.asd.

Parent Component

core (module).

Packages

cl-rfc4251.stream.

Public Interface
Internals

4.1.6 cl-rfc4251/client-package/package.lisp

Source

cl-rfc4251.asd.

Parent Component

client-package (module).

Packages

cl-rfc4251.


5 Packages

Packages are listed by definition order.


5.1 cl-rfc4251-system

Source

cl-rfc4251.asd.

Use List
  • asdf/interface.
  • common-lisp.

5.2 cl-rfc4251.encoder

Source

encoder.lisp.

Nickname

rfc4251.encoder

Use List

common-lisp.

Public Interface

encode (generic function).


5.3 cl-rfc4251

Source

package.lisp.

Nickname

rfc4251

Use List

common-lisp.


5.4 cl-rfc4251.stream

Source

stream.lisp.

Nickname

rfc4251.stream

Use List

common-lisp.

Public Interface
Internals

5.5 cl-rfc4251.util

Source

util.lisp.

Nickname

rfc4251.util

Use List

common-lisp.

Public Interface

5.6 cl-rfc4251.decoder

Source

decoder.lisp.

Nickname

rfc4251.decoder

Use List

common-lisp.

Public Interface

decode (generic function).


6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Ordinary functions

Function: decode-int-be (bytes)

Decode a vector of bytes into an integer, using big-endian byte order

Package

cl-rfc4251.util.

Source

util.lisp.

Function: decode-int-le (bytes)

Decode a vector of bytes into integer, using litte-endian byte order

Package

cl-rfc4251.util.

Source

util.lisp.

Function: encode-int-be (value &key add-sign min-bytes)

Encode the given value as bytes in big-endian byte order

Package

cl-rfc4251.util.

Source

util.lisp.

Function: encode-int-le (value &key add-sign min-bytes)

Convert an integer value to a vector of bytes in little-endian byte order

Package

cl-rfc4251.util.

Source

util.lisp.

Function: make-binary-input-stream (data &key start end)

Creates a new instance of BINARY-INPUT-STREAM class

Package

cl-rfc4251.stream.

Source

stream.lisp.

Function: make-binary-output-stream ()

Creates a new instance of BINARY-OUTPUT-STREAM

Package

cl-rfc4251.stream.

Source

stream.lisp.

Function: twos-complement (n n-bits)

Returns the two’s complement of the given number

Package

cl-rfc4251.util.

Source

util.lisp.


6.1.2 Generic functions

Generic Reader: binary-input-stream-data (object)
Package

cl-rfc4251.stream.

Methods
Reader Method: binary-input-stream-data ((binary-input-stream binary-input-stream))

A vector providing the underlying data

Source

stream.lisp.

Target Slot

data.

Generic Reader: binary-input-stream-end (object)
Package

cl-rfc4251.stream.

Methods
Reader Method: binary-input-stream-end ((binary-input-stream binary-input-stream))

End marker up to which bytes are to be read

Source

stream.lisp.

Target Slot

end.

Generic Reader: binary-input-stream-index (object)
Package

cl-rfc4251.stream.

Methods
Reader Method: binary-input-stream-index ((binary-input-stream binary-input-stream))

Current index position in the data

Source

stream.lisp.

Target Slot

index.

Generic Reader: binary-output-stream-data (object)
Generic Writer: (setf binary-output-stream-data) (object)
Package

cl-rfc4251.stream.

Methods
Reader Method: binary-output-stream-data ((binary-output-stream binary-output-stream))
Writer Method: (setf binary-output-stream-data) ((binary-output-stream binary-output-stream))

The underlying vector to which data is written

Source

stream.lisp.

Target Slot

data.

Generic Function: decode (type stream &key length)

Decode a value with the given type from the binary
stream. Returns multiple values – the decoded value and the number of bytes that were actually read to produce the value.

Package

cl-rfc4251.decoder.

Source

decoder.lisp.

Methods
Method: decode ((type (eql :buffer)) stream &key)

Decode a bytes buffer from the given stream

Method: decode ((type (eql :c-string)) stream &key)

Decode a NULL-terminated C string from the given stream

Method: decode ((type (eql :name-list)) stream &key)

Decode a comma-separated list of names from the given binary stream

Method: decode ((type (eql :mpint)) stream &key)

Decode a multiple precision integer in two’s complement format

Method: decode ((type (eql :string)) stream &key)

Decode a string value from the given binary stream

Method: decode ((type (eql :uint64)) stream &key)

Synonym for :uint64-be

Method: decode ((type (eql :uint64-le)) stream &key)

Decode 64-bit unsigned integer using little-endian byte order

Method: decode ((type (eql :uint64-be)) stream &key)

Decode 64-bit unsigned integer using big-endian byte order

Method: decode ((type (eql :uint32)) stream &key)

Synonym for :uint32-be

Method: decode ((type (eql :uint32-le)) stream &key)

Decode 32-bit unsigned integer using little-endian byte order

Method: decode ((type (eql :uint32-be)) stream &key)

Decode 32-bit unsigned integer using big-endian byte order

Method: decode ((type (eql :uint16)) stream &key)

Synonym for :uint16-be

Method: decode ((type (eql :uint16-le)) stream &key)

Decode 16-bit unsigned integer using little-endian byte order

Method: decode ((type (eql :uint16-be)) stream &key)

Decode 16-bit unsigned integer using big-endian byte order

Method: decode ((type (eql :boolean)) stream &key)

Decode a boolean value from the given binary stream

Method: decode ((type (eql :byte)) stream &key)

Decode a single byte (octet) from the given binary stream

Method: decode ((type (eql :raw-bytes)) stream &key length)

Read up to the given length of raw bytes from the stream

Generic Function: encode (type value stream &key length)

Encodes the value of the given type into the binary stream. Returns the number of bytes that were written to the stream.

Package

cl-rfc4251.encoder.

Source

encoder.lisp.

Methods
Method: encode ((type (eql :buffer)) value stream &key)

Encode a bytes buffer into the given stream

Method: encode ((type (eql :c-string)) value stream &key)

Encode a NULL-terminated C string into the binary stream

Method: encode ((type (eql :name-list)) value stream &key)

Encode a list of strings into the binary stream

Method: encode ((type (eql :mpint)) value stream &key)

Encode the given multiple precision integer value into the binary stream

Method: encode ((type (eql :string)) value stream &key)

Encode a string value into the given binary stream

Method: encode ((type (eql :uint64)) value stream &key)

Synonym for :uint64-be

Method: encode ((type (eql :uint64-le)) value stream &key)

Encode an unsigned 64-bit integer in little-endian byte order

Method: encode ((type (eql :uint64-be)) value stream &key)

Encode an unsigned 64-bit integer in big-endian byte order

Method: encode ((type (eql :uint32)) value stream &key)

Synonym for :uint32-be

Method: encode ((type (eql :uint32-le)) value stream &key)

Encode an unsigned 32-bit integer in little-endian byte order

Method: encode ((type (eql :uint32-be)) value stream &key)

Encode an unsigned 32-bit integer in big-endian byte order

Method: encode ((type (eql :uint16)) value stream &key)

Synonym for :uint16-be

Method: encode ((type (eql :uint16-le)) value stream &key)

Encode an unsigned 16-bit integer in little-endian byte order

Method: encode ((type (eql :uint16-be)) value stream &key)

Encode an unsigned 16-bit integer in big-endian byte order

Method: encode ((type (eql :boolean)) value stream &key)
Method: encode ((type (eql :raw-bytes)) bytes-vector stream &key length)
Method: encode ((type (eql :byte)) value stream &key)

Encodes a raw byte into the given binary stream

Generic Function: get-binary-stream-bytes (stream)

Returns the underlying bytes for a binary stream

Package

cl-rfc4251.stream.

Source

stream.lisp.

Methods
Method: get-binary-stream-bytes ((s binary-output-stream))
Method: get-binary-stream-bytes ((s binary-input-stream))

6.1.3 Standalone methods

Method: print-object ((object binary-input-stream) stream)
Source

stream.lisp.

Method: print-object ((object binary-output-stream) stream)
Source

stream.lisp.

Method: stream-element-type ((stream binary-input-stream))
Source

stream.lisp.

Method: stream-element-type ((stream binary-output-stream))
Source

stream.lisp.

Method: stream-read-byte ((stream binary-input-stream))

Reads a byte from the binary stream

Package

sb-gray.

Source

stream.lisp.

Method: stream-write-byte ((stream binary-output-stream) value)

Writes a byte to the given binary stream

Package

sb-gray.

Source

stream.lisp.


6.1.4 Classes

Class: binary-input-stream

Binary input stream class using a vector as the underlying data

Package

cl-rfc4251.stream.

Source

stream.lisp.

Direct superclasses

fundamental-binary-input-stream.

Direct methods
Direct slots
Slot: data

A vector providing the underlying data

Initform

(error "must provide vector data")

Initargs

:data

Readers

binary-input-stream-data.

Writers

This slot is read-only.

Slot: index

Current index position in the data

Initform

0

Initargs

:index

Readers

binary-input-stream-index.

Writers

This slot is read-only.

Slot: end

End marker up to which bytes are to be read

Initargs

:end

Readers

binary-input-stream-end.

Writers

This slot is read-only.

Class: binary-output-stream

Binary output stream class using a vector for the underlying data

Package

cl-rfc4251.stream.

Source

stream.lisp.

Direct superclasses

fundamental-binary-output-stream.

Direct methods
Direct slots
Slot: data

The underlying vector to which data is written

Initform

(make-array 0 :element-type (quote (unsigned-byte 8)) :adjustable t :fill-pointer 0)

Initargs

:data

Readers

binary-output-stream-data.

Writers

(setf binary-output-stream-data).


6.2 Internals


6.2.1 Macros

Macro: with-binary-input-stream ((s data) &body body)
Package

cl-rfc4251.stream.

Source

stream.lisp.

Macro: with-binary-output-stream ((s) &body body)
Package

cl-rfc4251.stream.

Source

stream.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
B   D   E   F   G   M   P   S   T   W  
Index Entry  Section

(
(setf binary-output-stream-data): Public generic functions
(setf binary-output-stream-data): Public generic functions

B
binary-input-stream-data: Public generic functions
binary-input-stream-data: Public generic functions
binary-input-stream-end: Public generic functions
binary-input-stream-end: Public generic functions
binary-input-stream-index: Public generic functions
binary-input-stream-index: Public generic functions
binary-output-stream-data: Public generic functions
binary-output-stream-data: Public generic functions

D
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode: Public generic functions
decode-int-be: Public ordinary functions
decode-int-le: Public ordinary functions

E
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode-int-be: Public ordinary functions
encode-int-le: Public ordinary functions

F
Function, decode-int-be: Public ordinary functions
Function, decode-int-le: Public ordinary functions
Function, encode-int-be: Public ordinary functions
Function, encode-int-le: Public ordinary functions
Function, make-binary-input-stream: Public ordinary functions
Function, make-binary-output-stream: Public ordinary functions
Function, twos-complement: Public ordinary functions

G
Generic Function, (setf binary-output-stream-data): Public generic functions
Generic Function, binary-input-stream-data: Public generic functions
Generic Function, binary-input-stream-end: Public generic functions
Generic Function, binary-input-stream-index: Public generic functions
Generic Function, binary-output-stream-data: Public generic functions
Generic Function, decode: Public generic functions
Generic Function, encode: Public generic functions
Generic Function, get-binary-stream-bytes: Public generic functions
get-binary-stream-bytes: Public generic functions
get-binary-stream-bytes: Public generic functions
get-binary-stream-bytes: Public generic functions

M
Macro, with-binary-input-stream: Private macros
Macro, with-binary-output-stream: Private macros
make-binary-input-stream: Public ordinary functions
make-binary-output-stream: Public ordinary functions
Method, (setf binary-output-stream-data): Public generic functions
Method, binary-input-stream-data: Public generic functions
Method, binary-input-stream-end: Public generic functions
Method, binary-input-stream-index: Public generic functions
Method, binary-output-stream-data: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, decode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, encode: Public generic functions
Method, get-binary-stream-bytes: Public generic functions
Method, get-binary-stream-bytes: Public generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, stream-element-type: Public standalone methods
Method, stream-element-type: Public standalone methods
Method, stream-read-byte: Public standalone methods
Method, stream-write-byte: Public standalone methods

P
print-object: Public standalone methods
print-object: Public standalone methods

S
stream-element-type: Public standalone methods
stream-element-type: Public standalone methods
stream-read-byte: Public standalone methods
stream-write-byte: Public standalone methods

T
twos-complement: Public ordinary functions

W
with-binary-input-stream: Private macros
with-binary-output-stream: Private macros


A.3 Variables

Jump to:   D   E   I   S  
Index Entry  Section

D
data: Public classes
data: Public classes

E
end: Public classes

I
index: Public classes

S
Slot, data: Public classes
Slot, data: Public classes
Slot, end: Public classes
Slot, index: Public classes


A.4 Data types

Jump to:   B   C   D   E   F   M   P   S   U  
Index Entry  Section

B
binary-input-stream: Public classes
binary-output-stream: Public classes

C
cl-rfc4251: The cl-rfc4251 system
cl-rfc4251: The cl-rfc4251 package
cl-rfc4251-system: The cl-rfc4251-system package
cl-rfc4251.asd: The cl-rfc4251/cl-rfc4251․asd file
cl-rfc4251.decoder: The cl-rfc4251․decoder package
cl-rfc4251.encoder: The cl-rfc4251․encoder package
cl-rfc4251.stream: The cl-rfc4251․stream package
cl-rfc4251.util: The cl-rfc4251․util package
Class, binary-input-stream: Public classes
Class, binary-output-stream: Public classes
client-package: The cl-rfc4251/client-package module
core: The cl-rfc4251/core module

D
decoder.lisp: The cl-rfc4251/core/decoder․lisp file

E
encoder.lisp: The cl-rfc4251/core/encoder․lisp file

F
File, cl-rfc4251.asd: The cl-rfc4251/cl-rfc4251․asd file
File, decoder.lisp: The cl-rfc4251/core/decoder․lisp file
File, encoder.lisp: The cl-rfc4251/core/encoder․lisp file
File, package.lisp: The cl-rfc4251/client-package/package․lisp file
File, stream.lisp: The cl-rfc4251/core/stream․lisp file
File, util.lisp: The cl-rfc4251/util/util․lisp file

M
Module, client-package: The cl-rfc4251/client-package module
Module, core: The cl-rfc4251/core module
Module, util: The cl-rfc4251/util module

P
Package, cl-rfc4251: The cl-rfc4251 package
Package, cl-rfc4251-system: The cl-rfc4251-system package
Package, cl-rfc4251.decoder: The cl-rfc4251․decoder package
Package, cl-rfc4251.encoder: The cl-rfc4251․encoder package
Package, cl-rfc4251.stream: The cl-rfc4251․stream package
Package, cl-rfc4251.util: The cl-rfc4251․util package
package.lisp: The cl-rfc4251/client-package/package․lisp file

S
stream.lisp: The cl-rfc4251/core/stream․lisp file
System, cl-rfc4251: The cl-rfc4251 system

U
util: The cl-rfc4251/util module
util.lisp: The cl-rfc4251/util/util․lisp file