| 
									
										
										
										
											2024-04-24 17:15:31 +08:00
										 |  |  | import rsa as pyrsa | 
					
						
							|  |  |  | from Crypto.PublicKey import RSA | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from libs import gmpy2_pkcs10aep_cipher | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_gmpy2_pkcs10aep_cipher() -> None: | 
					
						
							|  |  |  |     rsa_key_pair = pyrsa.newkeys(2048) | 
					
						
							|  |  |  |     public_key = rsa_key_pair[0].save_pkcs1() | 
					
						
							|  |  |  |     private_key = rsa_key_pair[1].save_pkcs1() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public_rsa_key = RSA.import_key(public_key) | 
					
						
							|  |  |  |     public_cipher_rsa2 = gmpy2_pkcs10aep_cipher.new(public_rsa_key) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private_rsa_key = RSA.import_key(private_key) | 
					
						
							|  |  |  |     private_cipher_rsa = gmpy2_pkcs10aep_cipher.new(private_rsa_key) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-23 23:52:25 +08:00
										 |  |  |     raw_text = "raw_text" | 
					
						
							| 
									
										
										
										
											2024-04-24 17:15:31 +08:00
										 |  |  |     raw_text_bytes = raw_text.encode() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # RSA encryption by public key and decryption by private key | 
					
						
							|  |  |  |     encrypted_by_pub_key = public_cipher_rsa2.encrypt(message=raw_text_bytes) | 
					
						
							|  |  |  |     decrypted_by_pub_key = private_cipher_rsa.decrypt(encrypted_by_pub_key) | 
					
						
							|  |  |  |     assert decrypted_by_pub_key == raw_text_bytes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # RSA encryption and decryption by private key | 
					
						
							|  |  |  |     encrypted_by_private_key = private_cipher_rsa.encrypt(message=raw_text_bytes) | 
					
						
							|  |  |  |     decrypted_by_private_key = private_cipher_rsa.decrypt(encrypted_by_private_key) | 
					
						
							|  |  |  |     assert decrypted_by_private_key == raw_text_bytes |