|  | @@ -699,6 +699,17 @@ router_parse_list_from_string(const char **s, smartlist_t *dest,
 | 
	
		
			
				|  |  |    return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +void dump_distinct_digests_xx(int severity);
 | 
	
		
			
				|  |  | +static digestmap_t *verified_digests_tmp = NULL; // XXXX0124 remove me.
 | 
	
		
			
				|  |  | +// remove me too.
 | 
	
		
			
				|  |  | +void
 | 
	
		
			
				|  |  | +dump_distinct_digests_xx(int severity) {
 | 
	
		
			
				|  |  | +  if (!verified_digests_tmp)
 | 
	
		
			
				|  |  | +    verified_digests_tmp = digestmap_new();
 | 
	
		
			
				|  |  | +  log(severity, LD_GENERAL, "%d *distinct* router digests verified",
 | 
	
		
			
				|  |  | +      digestmap_size(verified_digests_tmp));
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /** Helper function: reads a single router entry from *<b>s</b> ...
 | 
	
		
			
				|  |  |   * *<b>end</b>.  Mallocs a new router and returns it if all goes well, else
 | 
	
		
			
				|  |  |   * returns NULL.
 | 
	
	
		
			
				|  | @@ -913,6 +924,9 @@ router_parse_entry_from_string(const char *s, const char *end,
 | 
	
		
			
				|  |  |      goto err;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    note_crypto_pk_op(VERIFY_RTR);
 | 
	
		
			
				|  |  | +  if (!verified_digests_tmp)
 | 
	
		
			
				|  |  | +    verified_digests_tmp = digestmap_new();
 | 
	
		
			
				|  |  | +  digestmap_set(verified_digests_tmp, signed_digest, (void*)(uintptr_t)1);
 | 
	
		
			
				|  |  |    if ((t=crypto_pk_public_checksig(router->identity_pkey, signed_digest,
 | 
	
		
			
				|  |  |                                     tok->object_body, 128)) != 20) {
 | 
	
		
			
				|  |  |      log_warn(LD_DIR, "Invalid signature %d",t);
 |