Fix ECDSA DER signature detection
This commit is contained in:
		
							parent
							
								
									c019355c9f
								
							
						
					
					
						commit
						ce195c9133
					
				@ -171,8 +171,8 @@ export class Common {
 | 
			
		||||
    // heuristic to detect probable DER signatures
 | 
			
		||||
    return (w.length >= 18
 | 
			
		||||
      && w.startsWith('30') // minimum DER signature length is 8 bytes + sighash flag (see https://mempool.space/testnet/tx/c6c232a36395fa338da458b86ff1327395a9afc28c5d2daa4273e410089fd433)
 | 
			
		||||
      && ['01, 02, 03, 81, 82, 83'].includes(w.slice(-2)) // signature must end with a valid sighash flag
 | 
			
		||||
      && (w.length === parseInt(w.slice(2, 4), 16) + 6) // second byte encodes the combined length of the R and S components
 | 
			
		||||
      && ['01', '02', '03', '81', '82', '83'].includes(w.slice(-2)) // signature must end with a valid sighash flag
 | 
			
		||||
      && (w.length === (2 * parseInt(w.slice(2, 4), 16)) + 6) // second byte encodes the combined length of the R and S components
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user