类 SignatureUtil
- java.lang.Object
-
- io.nuls.base.signture.SignatureUtil
-
@Component public class SignatureUtil extends Object
交易签名工具类 Transaction Signature Tool Class- 作者:
- tag 2018/10/10
-
-
构造器概要
构造器 构造器 说明 SignatureUtil()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static booleancontainsAddress(Transaction tx, byte[] address, int chainId)判断交易是否存在某地址static ScriptcreateInputScript(byte[] signture, byte[] pubkey)生成单个解锁脚本static List<Script>createInputScripts(List<byte[]> signtures, List<byte[]> pubkeys)生成多个解锁脚本static ScriptcreateOutputScript(byte[] address)生成单个鎖定脚本static ScriptcreateP2shScript(List<byte[]> signtures, List<byte[]> pubkeys, int m)生成交易的脚本(多重签名,P2SH)static P2PHKSignaturecreateSignatureByEckey(NulsHash hash, ECKey ecKey)static P2PHKSignaturecreateSignatureByEckey(Transaction tx, ECKey ecKey)生成交易的签名传统static P2PHKSignaturecreateSignatureByPriKey(Transaction tx, String priKey)生成交易的签名传统static List<P2PHKSignature>createSignaturesByEckey(NulsHash hash, List<ECKey> eckeys)static List<P2PHKSignature>createSignaturesByEckey(Transaction tx, List<ECKey> eckeys)生成交易多个传统签名(多地址转账可能会用到)static voidcreateTransactionSignture(Transaction tx, List<ECKey> signEckeys)生成交易TransactionSignturestatic Set<String>getAddressFromTX(Transaction tx, int chainId)获取交易签名地址static intgetM(Script redeemScript)从赎回脚本中获取需要多少人签名static NulsSignDatasignDigest(byte[] digest, ECKey ecKey)生成交易签名static booleanvalidateCtxSignture(Transaction tx)跨链交易验证签名static booleanvalidateSignture(byte[] digestBytes, P2PHKSignature p2PHKSignature)验证数据签名static booleanvalidateTransactionSignture(Transaction tx)验证交易中所有签名正确性static booleanvalidMultiScriptSign(byte[] digestBytes, LinkedList<byte[]> signtures, LinkedList<byte[]> pubkeys)多重签名脚本签名验证static booleanvalidScriptSign(byte[] digestBytes, List<ScriptChunk> chunks)验证的脚本(多重签名,P2SH)
-
-
-
方法详细资料
-
validateTransactionSignture
public static boolean validateTransactionSignture(Transaction tx) throws NulsException
验证交易中所有签名正确性- 参数:
tx- 交易- 抛出:
NulsException
-
validateCtxSignture
public static boolean validateCtxSignture(Transaction tx) throws NulsException
跨链交易验证签名- 参数:
tx- 交易- 抛出:
NulsException
-
validateSignture
public static boolean validateSignture(byte[] digestBytes, P2PHKSignature p2PHKSignature) throws NulsException验证数据签名- 参数:
digestBytes-p2PHKSignature-- 返回:
- 抛出:
NulsException
-
containsAddress
public static boolean containsAddress(Transaction tx, byte[] address, int chainId) throws NulsException
判断交易是否存在某地址- 参数:
tx- 交易- 抛出:
NulsException
-
getAddressFromTX
public static Set<String> getAddressFromTX(Transaction tx, int chainId) throws NulsException
获取交易签名地址- 参数:
tx- 交易- 抛出:
NulsException
-
createTransactionSignture
public static void createTransactionSignture(Transaction tx, List<ECKey> signEckeys) throws IOException
生成交易TransactionSignture- 参数:
tx- 交易signEckeys- 需要生成普通签名的秘钥- 抛出:
IOException
-
createSignaturesByEckey
public static List<P2PHKSignature> createSignaturesByEckey(Transaction tx, List<ECKey> eckeys)
生成交易多个传统签名(多地址转账可能会用到)- 参数:
tx- 交易eckeys- 秘钥列表
-
createSignaturesByEckey
public static List<P2PHKSignature> createSignaturesByEckey(NulsHash hash, List<ECKey> eckeys)
-
createSignatureByPriKey
public static P2PHKSignature createSignatureByPriKey(Transaction tx, String priKey)
生成交易的签名传统- 参数:
tx- 交易priKey- 私钥
-
createSignatureByEckey
public static P2PHKSignature createSignatureByEckey(Transaction tx, ECKey ecKey)
生成交易的签名传统- 参数:
tx- 交易ecKey- 秘钥
-
createSignatureByEckey
public static P2PHKSignature createSignatureByEckey(NulsHash hash, ECKey ecKey)
-
createInputScripts
public static List<Script> createInputScripts(List<byte[]> signtures, List<byte[]> pubkeys)
生成多个解锁脚本- 参数:
signtures- 签名列表pubkeys- 公钥列表
-
createInputScript
public static Script createInputScript(byte[] signture, byte[] pubkey)
生成单个解锁脚本- 参数:
signture- 签名列表pubkey- 公钥列表
-
createOutputScript
public static Script createOutputScript(byte[] address)
生成单个鎖定脚本
-
createP2shScript
public static Script createP2shScript(List<byte[]> signtures, List<byte[]> pubkeys, int m)
生成交易的脚本(多重签名,P2SH)- 参数:
signtures- 签名列表pubkeys- 公钥列表
-
validScriptSign
public static boolean validScriptSign(byte[] digestBytes, List<ScriptChunk> chunks)验证的脚本(多重签名,P2SH)- 参数:
digestBytes- 验证的签名数据chunks- 需要验证的脚本
-
getM
public static int getM(Script redeemScript)
从赎回脚本中获取需要多少人签名- 参数:
redeemScript- 赎回脚本
-
validMultiScriptSign
public static boolean validMultiScriptSign(byte[] digestBytes, LinkedList<byte[]> signtures, LinkedList<byte[]> pubkeys)多重签名脚本签名验证- 参数:
digestBytes- 验证的签名数据signtures- 签名列表
-
signDigest
public static NulsSignData signDigest(byte[] digest, ECKey ecKey)
生成交易签名- 参数:
digest- 需要签名的交易数据ecKey- 签名的私钥
-
-