b2f:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
b2f:start [2025/02/14 16:55] – [Binary compressed protocol version 0] f4hof | b2f:start [2025/02/15 10:13] (current) – [Standard Forwarding protocol (MBL/RLI)] f4hof | ||
---|---|---|---|
Line 57: | Line 57: | ||
| P2P | '' | | P2P | '' | ||
===== Commands (AKA proposals) ===== | ===== Commands (AKA proposals) ===== | ||
- | ==== Common subset ==== | ||
- | The '' | ||
- | Format: | ||
- | |||
- | < | ||
- | |||
- | ^ Code ^ Action ^ Remarks ^ | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | |||
- | Starting from Binary compressed format version 1, additional responses are possible: | ||
- | |||
- | ^ Code ^ Action ^ Remarks ^ | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | | '' | ||
- | |||
- | |||
- | ==== Calling Station ID ==== | ||
- | The calling station identification command is to be sent **PRIOR** the calling station SID. | ||
- | < | ||
==== Ascii Basic Protocol ===== | ==== Ascii Basic Protocol ===== | ||
Line 92: | Line 66: | ||
==== Binary compressed protocol version 0 ==== | ==== Binary compressed protocol version 0 ==== | ||
- | (i) Usage of this proposal implies the presence of both the '' | + | (i) Usage of this proposal implies the presence of both the '' |
Details in the dedicated page on the [[b2f: | Details in the dedicated page on the [[b2f: | ||
==== Binary compressed protocol version 1 ==== | ==== Binary compressed protocol version 1 ==== | ||
- | ==== Binary compressed protocol version 2 ==== | + | |
+ | (i) Usage of this proposal implies the presence of both the '' | ||
+ | |||
+ | Details in the dedicated page on the [[b2f: | ||
+ | ==== B2F ==== | ||
B2F is a superset of BCFv1, so '' | B2F is a superset of BCFv1, so '' | ||
- | Additionally, | + | This protocol's specifics are described in [[b2f:b2f|Open B2F]]. |
==== GZIP Experiment ==== | ==== GZIP Experiment ==== | ||
- | The GZIP Experiment is a superset of BCPv2 which adds the '' | + | The GZIP Experiment is a superset of BCPv2 which adds the '' |
===== Winlink specifics ===== | ===== Winlink specifics ===== | ||
Line 109: | Line 86: | ||
W0RLI also ties the features '' | W0RLI also ties the features '' | ||
- | ==== Secure login ==== | ||
- | The exchange happens after the SID has been transmitted. | ||
- | |||
- | The server sends a ''; | ||
- | |||
- | < | ||
- | |||
- | The client computes the response using the following pseudocode: | ||
- | |||
- | <code c> | ||
- | // Trailing salt | ||
- | uint8_t sl_salt[] = { | ||
- | 77, 197, 101, 206, 190, 249, 93, 200, | ||
- | 51, 243, 93, 237, 71, 94, 239, 138, | ||
- | 68, 108, 70, 185, 225, 137, 217, 16, | ||
- | 51, 122, 193, 48, 194, 195, 198, 175, | ||
- | 172, 169, 70, 84, 61, 62, 104, 186, | ||
- | 114, 52, 61, 168, 66, 129, 192, 208, | ||
- | 187, 249, 232, 193, 41, 113, 41, 45, | ||
- | 240, 16, 29, 228, 208, 228, 61, 20 | ||
- | }; | ||
- | |||
- | // Concatenate the challenge, the password and the salt. | ||
- | payload = concat( challenge, password, sl_salt) | ||
- | |||
- | // Compute the md5 of the last result | ||
- | md5sum = md5(payload) | ||
- | |||
- | // Take the first 4 bytes of the hash, flip the byte-wise endianness, and cap the first byte to 0x3f | ||
- | response = ( (uint8_t)(md5sum[3]) & 0x3f ) << 24 | (uint8_t)(md5sum[2]) << 16 | (uint8_t)(md5sum[1]) << 8 | (uint8_t)(md5sum[0]) ) | ||
- | |||
- | // Keep the 8 least significant digits in base 10 of response. | ||
- | // If response is shorter than 8 digits, 0-pad from the left. | ||
- | resval = itoa( response % 100000000, base10) | ||
- | sprintf( result, " | ||
- | |||
- | </ | ||
- | |||
- | The result is then sent to the server using the following format: | ||
- | |||
- | < | ||
- | Reference source code in [[https:// | ||
==== Forward messages ==== | ==== Forward messages ==== | ||
==== Pending messages ==== | ==== Pending messages ==== | ||
Line 165: | Line 100: | ||
Your software is supposed to fall back in this mode when the feature '' | Your software is supposed to fall back in this mode when the feature '' | ||
- | Best recommended stance, for now, is to reject connections with an error message, given the lack of available documentation. | + | F4HOF' |
==== ASCII Basic Protocol ==== | ==== ASCII Basic Protocol ==== |
b2f/start.1739552150.txt.gz · Last modified: 2025/02/14 16:55 by f4hof