| 
									
										
										
										
											2008-11-06 02:39:08 +08:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2021-07-29 22:41:35 +08:00
										 |  |  |  * Copyright 2006-2021 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2006-04-15 01:36:18 +08:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2018-12-06 20:54:02 +08:00
										 |  |  |  * Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2016-05-18 02:51:34 +08:00
										 |  |  |  * this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  |  * in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  |  * https://www.openssl.org/source/license.html
 | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-12 13:03:51 +08:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * RSA low level APIs are deprecated for public use, but still ok for | 
					
						
							|  |  |  |  * internal use. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #include "internal/deprecated.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  | #include <stdio.h>
 | 
					
						
							| 
									
										
										
										
											2015-05-14 22:56:48 +08:00
										 |  |  | #include "internal/cryptlib.h"
 | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  | #include <openssl/rsa.h>
 | 
					
						
							|  |  |  | #include <openssl/evp.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-15 04:57:28 +08:00
										 |  |  | #ifndef OPENSSL_NO_STDIO
 | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  | int RSA_print_fp(FILE *fp, const RSA *x, int off) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     BIO *b; | 
					
						
							|  |  |  |     int ret; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if ((b = BIO_new(BIO_s_file())) == NULL) { | 
					
						
							| 
									
										
										
										
											2020-11-04 19:23:19 +08:00
										 |  |  |         ERR_raise(ERR_LIB_RSA, ERR_R_BUF_LIB); | 
					
						
							| 
									
										
										
										
											2017-08-23 01:25:23 +08:00
										 |  |  |         return 0; | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |     BIO_set_fp(b, fp, BIO_NOCLOSE); | 
					
						
							|  |  |  |     ret = RSA_print(b, x, off); | 
					
						
							|  |  |  |     BIO_free(b); | 
					
						
							| 
									
										
										
										
											2017-08-23 01:25:23 +08:00
										 |  |  |     return ret; | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int RSA_print(BIO *bp, const RSA *x, int off) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     EVP_PKEY *pk; | 
					
						
							|  |  |  |     int ret; | 
					
						
							|  |  |  |     pk = EVP_PKEY_new(); | 
					
						
							| 
									
										
										
										
											2021-07-22 00:45:01 +08:00
										 |  |  |     if (pk == NULL) | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  |         return 0; | 
					
						
							| 
									
										
										
										
											2021-07-22 00:45:01 +08:00
										 |  |  |     ret = EVP_PKEY_set1_RSA(pk, (RSA *)x); | 
					
						
							|  |  |  |     if (ret) | 
					
						
							|  |  |  |         ret = EVP_PKEY_print_private(bp, pk, off, NULL); | 
					
						
							| 
									
										
										
										
											2006-03-22 21:34:19 +08:00
										 |  |  |     EVP_PKEY_free(pk); | 
					
						
							|  |  |  |     return ret; | 
					
						
							|  |  |  | } |