public PACEAlgo(ASN1Tag tag) { // dovrei inizializzare i vari componenti in base all'OID del tag. // per adesso mi limito a DH_GM DG14Tag = tag; algo1 = new DHAlgo(DG14Tag); mapping = new GenericMapping(algo1); }
public IPACEAlgo Map(byte[] secret, byte[] nonce) { IPACEAlgo newAlgo = algo.Clone() as IPACEAlgo; if (newAlgo is DHAlgo) { var dhNewAlgo = newAlgo as DHAlgo; var temp = BigInteger.ModPow(dhNewAlgo.Group, new ByteArray(nonce), dhNewAlgo.Prime); var temp2 = BigInteger.Multiply(temp, new ByteArray(secret)); dhNewAlgo.Group = BigInteger.Remainder(temp2, dhNewAlgo.Prime); } return(newAlgo); }
public GenericMapping(IPACEAlgo algo) { this.algo = algo; }
public void DoMapping(byte[] secret, byte[] nonce) { algo2 = mapping.Map(secret, nonce); }