// loopSize is unknown. door loopSize != card loopSize // Left public for unit tests public LoopResult FindLoopResults() { LoopResult result = new LoopResult(); result.DoorLoopSize = FindLoopSize(_doorPublic); result.CardLoopSize = FindLoopSize(_cardPublic); return(result); }
public long CrackEncryptionKey() { LoopResult loopResult = FindLoopResults(); long cardEncryptionKey = TransformNumber(loopResult.CardLoopSize, _doorPublic); long doorEncryptionKey = TransformNumber(loopResult.DoorLoopSize, _cardPublic); if (cardEncryptionKey != doorEncryptionKey) { throw new Exception("If done right, the calculated encryption keys should be the same."); } return(cardEncryptionKey); }