| 
					
				 | 
			
			
				@@ -48,38 +48,6 @@ void select_question(const char *sq) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * \brief Print out a valid RSA Private Key. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-print_rsa_private(RSA *rsa) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  char *dec, *hex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const char *desc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    BIGNUM *n; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } items[5] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {"Public Modulus", rsa->n}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {"Prime Factor p", rsa->p}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {"Prime Factor q", rsa->q}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {"Public Exponent", rsa->e}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {"Private Exponent", rsa->d}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  assert(rsa); /* && rsa->p && rsa->q && rsa->e); */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  for (i=0; i!=5; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!items[i].n) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    dec = BN_bn2dec(items[i].n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    hex = BN_bn2hex(items[i].n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fprintf(stdout, "\t%-22s : %-15s (0x%s)\n", items[i].desc, dec, hex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OPENSSL_free(dec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OPENSSL_free(hex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * \brief Run a specific question, returning the measure of security probed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * \return -1 if the question `q` is not suited for attacking the certificate. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -106,8 +74,7 @@ int run_question(qa_question_t *q, X509 *crt, RSA *pub) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (q->ask_rsa && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (priv = q->ask_rsa(pub))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifdef DEBUG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //PEM_write_RSAPrivateKey(stdout, priv, NULL, NULL, 0, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    print_rsa_private(priv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PEM_write_RSAPrivateKey(stdout, priv, NULL, NULL, 0, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     RSA_free(priv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return 1; 
			 |