internal string Sign(string message) { var hash = Hash(message); var der = _keyPair.Sign(hash); return(Utils.BytesToHex(der)); }
public SignedTx SignStObject(StObject tx) { tx.SetFlag(CanonicalSigFlag); tx[Field.SigningPubKey] = _keyPair.CanonicalPubBytes(); tx[Field.TxnSignature] = _keyPair.Sign(tx.SigningData()); return(ValidateAndEncode(tx)); }
public void Sign(IKeyPair keypair, Func <byte[], byte[], byte[], byte[]> customSignFunction = null) { Throw.If(keypair == null, "invalid keypair"); var msg = this.ToByteArray(false); Signature sig = keypair.Sign(msg, customSignFunction); var sigs = new List <Signature>(); if (this.Signatures != null && this.Signatures.Length > 0) { sigs.AddRange(this.Signatures); } sigs.Add(sig); this.Signatures = sigs.ToArray(); }
public void Prepare(IKeyPair keyPair, Amount fee, UInt32 sequence, UInt32 lastLedgerSequence) { // This won't always be specified if (lastLedgerSequence != null) { Txn.Add(UInt32.LastLedgerSequence, lastLedgerSequence); } Txn.Add(UInt32.Sequence, sequence); Txn.Add(Amount.Fee, fee); Txn.Add(VariableLength.SigningPubKey, keyPair.PubBytes()); if (Transaction.CanonicalFlagDeployed) { Txn.SetCanonicalSignatureFlag(); } SigningHash = Txn.SigningHash(); if (PreviousSigningHash != null && SigningHash.Equals(PreviousSigningHash)) { return; } try { byte[] signature = keyPair.Sign(SigningHash.Bytes); Txn.Add(VariableLength.TxnSignature, signature); var blob = new BytesList(); Hash256.HalfSha512 id = Hash256.Prefixed256(HashPrefix.TransactionId); Txn.ToBytesSink(new MultiSink(blob, id)); TxBlob = blob.BytesHex(); Hash = id.Finish(); } catch (Exception e) { // electric paranoia PreviousSigningHash = null; throw new ApplicationException("Something went wrong.", e); } PreviousSigningHash = SigningHash; }
public void Sign(IKeyPair keys) { var msg = this.ToByteArray(false); this.Signature = keys.Sign(msg); }