mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			694 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			694 B
		
	
	
	
		
			Text
		
	
	
	
	
	
int check_signatures(msg_hash, signatures, signers, bitmask_size) impure {
 | 
						|
  var bitmask = 0;
 | 
						|
  var id = -1;
 | 
						|
  do {
 | 
						|
    (id, var signature, var f) = signatures.udict_get_next?(32, id);
 | 
						|
    if (f){
 | 
						|
      var sig = signature.preload_bits(512);
 | 
						|
      var public_key = -1;
 | 
						|
      do {
 | 
						|
        (public_key, var cs, var _found) = signers.udict_get_next?(256, public_key);
 | 
						|
        if (_found){
 | 
						|
          if (check_signature(msg_hash, sig, public_key)){
 | 
						|
            var signer_index = cs~load_uint(bitmask_size);
 | 
						|
                    bitmask = bitmask | (1 << (signer_index - 1));  
 | 
						|
          } 
 | 
						|
        }
 | 
						|
      } until (~ _found);
 | 
						|
      ;; signature~touch(); 
 | 
						|
    }
 | 
						|
  } until (~ f);
 | 
						|
  return bitmask;
 | 
						|
}
 |