コード例 #1
0
 public Puzzle Unblind(BlindFactor blind)
 {
     if (blind == null)
     {
         throw new ArgumentNullException(nameof(blind));
     }
     return(new Puzzle(this._RsaPubKey, new PuzzleValue(this.RsaPubKey.RevertBlind(this.PuzzleValue._Value, blind))));
 }
コード例 #2
0
 internal BigInteger Blind(BigInteger data, ref BlindFactor blindFactor)
 {
     if (data == null)
     {
         throw new ArgumentNullException(nameof(data));
     }
     EnsureInitializeBlindFactor(ref blindFactor);
     return(Blind(blindFactor._Value.ModPow(this._Key.Exponent, this._Key.Modulus), data));
 }
コード例 #3
0
 public PuzzleSolution Unblind(RsaPubKey rsaPubKey, BlindFactor blind)
 {
     if (rsaPubKey == null)
     {
         throw new ArgumentNullException(nameof(rsaPubKey));
     }
     if (blind == null)
     {
         throw new ArgumentNullException(nameof(blind));
     }
     return(new PuzzleSolution(rsaPubKey.Unblind(this._Value, blind)));
 }
コード例 #4
0
 internal BigInteger Unblind(BigInteger data, BlindFactor blindFactor)
 {
     if (data == null)
     {
         throw new ArgumentNullException(nameof(data));
     }
     if (blindFactor == null)
     {
         throw new ArgumentNullException(nameof(blindFactor));
     }
     EnsureInitializeBlindFactor(ref blindFactor);
     return(Blind(blindFactor._Value.ModInverse(this._Key.Modulus), data));
 }
コード例 #5
0
 private void EnsureInitializeBlindFactor(ref BlindFactor blindFactor)
 {
     blindFactor = blindFactor ?? new BlindFactor(Utils.GenerateEncryptableInteger(this._Key));
 }
コード例 #6
0
 public Puzzle Blind(ref BlindFactor blind)
 {
     return(new Puzzle(this._RsaPubKey, new PuzzleValue(this._RsaPubKey.Blind(this.PuzzleValue._Value, ref blind))));
 }