Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public GenericMapping(IPACEAlgo algo)
 {
     this.algo = algo;
 }
Esempio n. 4
0
 public void DoMapping(byte[] secret, byte[] nonce)
 {
     algo2 = mapping.Map(secret, nonce);
 }