mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-16 12:49:55 +01:00
Merge branch '190-key-manager-duplicates' into 'master'
Fix off-by-one error in key rotation Fixes #190. See merge request !32
This commit is contained in:
@@ -11,6 +11,12 @@ public class TransportKeys {
|
|||||||
|
|
||||||
public TransportKeys(TransportId transportId, IncomingKeys inPrev,
|
public TransportKeys(TransportId transportId, IncomingKeys inPrev,
|
||||||
IncomingKeys inCurr, IncomingKeys inNext, OutgoingKeys outCurr) {
|
IncomingKeys inCurr, IncomingKeys inNext, OutgoingKeys outCurr) {
|
||||||
|
if (inPrev.getRotationPeriod() != inCurr.getRotationPeriod() - 1)
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
if (inNext.getRotationPeriod() != inCurr.getRotationPeriod() + 1)
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
if (outCurr.getRotationPeriod() != inCurr.getRotationPeriod())
|
||||||
|
throw new IllegalArgumentException();
|
||||||
this.transportId = transportId;
|
this.transportId = transportId;
|
||||||
this.inPrev = inPrev;
|
this.inPrev = inPrev;
|
||||||
this.inCurr = inCurr;
|
this.inCurr = inCurr;
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ class CryptoComponentImpl implements CryptoComponent {
|
|||||||
inCurr = inNext;
|
inCurr = inNext;
|
||||||
SecretKey inNextTag = rotateKey(inNext.getTagKey(), p + 1);
|
SecretKey inNextTag = rotateKey(inNext.getTagKey(), p + 1);
|
||||||
SecretKey inNextHeader = rotateKey(inNext.getHeaderKey(), p + 1);
|
SecretKey inNextHeader = rotateKey(inNext.getHeaderKey(), p + 1);
|
||||||
inNext = new IncomingKeys(inNextTag, inNextHeader, p);
|
inNext = new IncomingKeys(inNextTag, inNextHeader, p + 1);
|
||||||
SecretKey outCurrTag = rotateKey(outCurr.getTagKey(), p);
|
SecretKey outCurrTag = rotateKey(outCurr.getTagKey(), p);
|
||||||
SecretKey outCurrHeader = rotateKey(outCurr.getHeaderKey(), p);
|
SecretKey outCurrHeader = rotateKey(outCurr.getHeaderKey(), p);
|
||||||
outCurr = new OutgoingKeys(outCurrTag, outCurrHeader, p);
|
outCurr = new OutgoingKeys(outCurrTag, outCurrHeader, p);
|
||||||
|
|||||||
Reference in New Issue
Block a user