crypto.createVerify(必须要有algorithm参数)
This commit is contained in:
		
							parent
							
								
									d2e9f368cc
								
							
						
					
					
						commit
						8780cd1c40
					
				
							
								
								
									
										2
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								index.js
									
									
									
									
									
								
							@ -321,7 +321,7 @@ class TICrypto {
 | 
				
			|||||||
      } else if (signature.length >= 140) {
 | 
					      } else if (signature.length >= 140) {
 | 
				
			||||||
        // 纯 crypto
 | 
					        // 纯 crypto
 | 
				
			||||||
        let pubkeyPEM = await new keyman.Key('oct', this.hex2buf(pubkey), { namedCurve: 'P-256K' }).export('pem') // 公钥导出的der格式为88字节。经测试,同一对压缩和非压缩公钥得出的结果一模一样。
 | 
					        let pubkeyPEM = await new keyman.Key('oct', this.hex2buf(pubkey), { namedCurve: 'P-256K' }).export('pem') // 公钥导出的der格式为88字节。经测试,同一对压缩和非压缩公钥得出的结果一模一样。
 | 
				
			||||||
        let verifier = crypto.createVerify() // 不像 createSign(hasher),createVerify()不需要参数
 | 
					        let verifier = crypto.createVerify(['sha1', 'sha256', 'sha512'].indexOf(hasher) >= 0 ? hasher : my.HASHER)
 | 
				
			||||||
        verifier.update(this.hash(data)).end() // end() 在 nodejs 12 里返回verifier自身,但在浏览器里返回 undefined,因此不能串联运行。
 | 
					        verifier.update(this.hash(data)).end() // end() 在 nodejs 12 里返回verifier自身,但在浏览器里返回 undefined,因此不能串联运行。
 | 
				
			||||||
        let verified = verifier.verify(pubkeyPEM, signature, 'hex') // 如果给signature添加1位hex,crypto 的 verify结果也是true! 估计因为一位hex不被转成字节。但减少1位会导致false
 | 
					        let verified = verifier.verify(pubkeyPEM, signature, 'hex') // 如果给signature添加1位hex,crypto 的 verify结果也是true! 估计因为一位hex不被转成字节。但减少1位会导致false
 | 
				
			||||||
        return verified
 | 
					        return verified
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user