本文整理汇总了TypeScript中bitcoinjs-lib.crypto.sha256方法的典型用法代码示例。如果您正苦于以下问题:TypeScript crypto.sha256方法的具体用法?TypeScript crypto.sha256怎么用?TypeScript crypto.sha256使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitcoinjs-lib.crypto
的用法示例。
在下文中一共展示了crypto.sha256方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: makeLegacyAuthToken
/**
*
* @param challengeText
* @param signerKeyHex
*
* @ignore
*/
function makeLegacyAuthToken(challengeText: string, signerKeyHex: string): string {
// only sign specific legacy auth challenges.
let parsedChallenge
try {
parsedChallenge = JSON.parse(challengeText)
} catch (err) {
throw new Error('Failed in parsing legacy challenge text from the gaia hub.')
}
if (parsedChallenge[0] === 'gaiahub'
&& parsedChallenge[3] === 'blockstack_storage_please_sign') {
const signer = hexStringToECPair(signerKeyHex
+ (signerKeyHex.length === 64 ? '01' : ''))
const digest = bitcoin.crypto.sha256(Buffer.from(challengeText))
const signatureBuffer = signer.sign(digest)
const signatureWithHash = bitcoin.script.signature.encode(
signatureBuffer, bitcoin.Transaction.SIGHASH_NONE)
// We only want the DER encoding so remove the sighash version byte at the end.
// See: https://github.com/bitcoinjs/bitcoinjs-lib/issues/1241#issuecomment-428062912
const signature = signatureWithHash.toString('hex').slice(0, -2)
const publickey = getPublicKeyFromPrivate(signerKeyHex)
const token = Buffer.from(JSON.stringify(
{ publickey, signature }
)).toString('base64')
return token
} else {
throw new Error('Failed to connect to legacy gaia hub. If you operate this hub, please update.')
}
}
示例2: makeAuthPart
static makeAuthPart(secretKey: bitcoin.ECPair, challengeText: string) {
const publickey = secretKey.publicKey.toString('hex')
const digest = bitcoin.crypto.sha256(Buffer.from(challengeText))
const signatureBuffer = secretKey.sign(digest)
const signatureWithHash = bitcoin.script.signature.encode(signatureBuffer, bitcoin.Transaction.SIGHASH_NONE)
// We only want the DER encoding so remove the sighash version byte at the end.
// See: https://github.com/bitcoinjs/bitcoinjs-lib/issues/1241#issuecomment-428062912
const signature = signatureWithHash.toString('hex').slice(0, -2)
const authObj = { publickey, signature }
return Buffer.from(JSON.stringify(authObj)).toString('base64')
}
示例3: isAuthenticationValid
isAuthenticationValid(address: string, challengeTexts: Array<string>,
options? : {}) { // eslint-disable-line @typescript-eslint/no-unused-vars
if (ecPairToAddress(this.publickey) !== address) {
throw new ValidationError('Address not allowed to write on this path')
}
for (const challengeText of challengeTexts) {
const digest = bitcoin.crypto.sha256(Buffer.from(challengeText))
const valid = (this.publickey.verify(digest, Buffer.from(this.signature, 'hex')) === true)
if (valid) {
return address
}
}
logger.debug(`Failed to validate with challenge text: ${JSON.stringify(challengeTexts)}`)
throw new ValidationError('Invalid signature or expired authentication token.')
}