public Puzzle Unblind(BlindFactor blind) { if (blind == null) { throw new ArgumentNullException(nameof(blind)); } return(new Puzzle(_RsaPubKey, new PuzzleValue(RsaPubKey.RevertBlind(PuzzleValue._Value, blind)))); }
public override bool Equals(object obj) { Puzzle item = obj as Puzzle; if (item == null) { return(false); } return(PuzzleValue.Equals(item.PuzzleValue) && RsaPubKey.Equals(item.RsaPubKey)); }
public RsaKey() { var gen = new RsaKeyPairGenerator(); gen.Init(new RsaKeyGenerationParameters(RSA_F4, NBitcoinSecureRandom.Instance, KeySize, 2)); // See A.15.2 IEEE P1363 v2 D1 for certainty parameter var pair = gen.GenerateKeyPair(); _Key = (RsaPrivateCrtKeyParameters)pair.Private; _PubKey = new RsaPubKey((RsaKeyParameters)pair.Public); }
public override bool Equals(object obj) { RsaPubKey item = obj as RsaPubKey; if (item == null) { return(false); } return(_Key.Equals(item._Key)); }
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(_Value, blind))); }
public Puzzle(RsaPubKey rsaPubKey, PuzzleValue puzzleValue) { if (rsaPubKey == null) { throw new ArgumentNullException(nameof(rsaPubKey)); } if (puzzleValue == null) { throw new ArgumentNullException(nameof(puzzleValue)); } _RsaPubKey = rsaPubKey; _PuzzleValue = puzzleValue; }
public static void ReadWriteC(this BitcoinStream bs, ref RsaPubKey pubKey) { if (bs.Serializing) { var bytes = pubKey == null ? new byte[0] : pubKey.ToBytes(); bs.ReadWriteAsVarString(ref bytes); } else { byte[] bytes = null; bs.ReadWriteAsVarString(ref bytes); pubKey = bytes.Length == 0 ? null : new RsaPubKey(bytes); } }
public RsaKey(byte[] bytes) { if (bytes == null) { throw new ArgumentNullException(nameof(bytes)); } try { DerSequence seq2 = GetRSASequence(bytes); var s = new RsaPrivateKeyStructure(seq2); _Key = new RsaPrivateCrtKeyParameters(s.Modulus, s.PublicExponent, s.PrivateExponent, s.Prime1, s.Prime2, s.Exponent1, s.Exponent2, s.Coefficient); _PubKey = new RsaPubKey(new RsaKeyParameters(false, s.Modulus, s.PublicExponent)); } catch (Exception) { throw new FormatException("Invalid RSA Key"); } }
public Puzzle WithRsaKey(RsaPubKey key) { return(new Puzzle(key, this)); }
public override int GetHashCode() { return(PuzzleValue.GetHashCode() ^ RsaPubKey.GetHashCode()); }
public Puzzle(RsaPubKey rsaPubKey, PuzzleValue puzzleValue) { _RsaPubKey = rsaPubKey ?? throw new ArgumentNullException(nameof(rsaPubKey)); _PuzzleValue = puzzleValue ?? throw new ArgumentNullException(nameof(puzzleValue)); }