|
|
|
|
@ -1353,16 +1353,18 @@ public:
|
|
|
|
|
/**
|
|
|
|
|
* Encrypt/decrypt a separately armored portion of a packet |
|
|
|
|
* |
|
|
|
|
* This keys using the same key in the same way as armor/dearmor, but |
|
|
|
|
* uses a different IV computed from the packet's IV plus the starting |
|
|
|
|
* point index. |
|
|
|
|
* |
|
|
|
|
* This currently uses Salsa20/12, but any message that uses this should |
|
|
|
|
* incorporate a cipher selector to permit this to be changed later. |
|
|
|
|
* incorporate a cipher selector to permit this to be changed later. To |
|
|
|
|
* ensure that key stream is not reused, the key is slightly altered for |
|
|
|
|
* this use case and the same initial 32 keystream bytes that are taken |
|
|
|
|
* for MAC in ordinary armor() are also skipped here. |
|
|
|
|
* |
|
|
|
|
* This is currently only used to mask portions of HELLO as an extra |
|
|
|
|
* security precation since most of that message is sent in the clear. |
|
|
|
|
* |
|
|
|
|
* This must NEVER be used more than once in the same packet, as doing |
|
|
|
|
* so will result in re-use of the same key stream. |
|
|
|
|
* |
|
|
|
|
* @param key 32-byte key |
|
|
|
|
* @param start Start of encrypted portion |
|
|
|
|
* @param len Length of encrypted portion |
|
|
|
|
|