mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Swift
		
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Swift
		
	
| 
											5 years ago
										 | import Clibsodium | ||
|  | import Sodium | ||
|  | 
 | ||
|  | extension Sign { | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      Converts an Ed25519 public key to an X25519 public key. | ||
|  |      - Parameter ed25519PublicKey: The Ed25519 public key to convert. | ||
|  |      - Returns: The X25519 public key if conversion is successful. | ||
|  |      */ | ||
|  |     public func toX25519(ed25519PublicKey: PublicKey) -> PublicKey? { | ||
|  |         var x25519PublicKey = PublicKey(repeating: 0, count: 32) | ||
|  | 
 | ||
|  |         // FIXME: It'd be nice to check the exit code here, but all the properties of the object | ||
|  |         // returned by the call below are internal. | ||
|  |         let _ = crypto_sign_ed25519_pk_to_curve25519 ( | ||
|  |             &x25519PublicKey, | ||
|  |             ed25519PublicKey | ||
|  |         ) | ||
|  | 
 | ||
|  |         return x25519PublicKey | ||
|  |     } | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      Converts an Ed25519 secret key to an X25519 secret key. | ||
|  |      - Parameter ed25519SecretKey: The Ed25519 secret key to convert. | ||
|  |      - Returns: The X25519 secret key if conversion is successful. | ||
|  |      */ | ||
|  |     public func toX25519(ed25519SecretKey: SecretKey) -> SecretKey? { | ||
|  |         var x25519SecretKey = SecretKey(repeating: 0, count: 32) | ||
|  | 
 | ||
|  |         // FIXME: It'd be nice to check the exit code here, but all the properties of the object | ||
|  |         // returned by the call below are internal. | ||
|  |         let _ = crypto_sign_ed25519_sk_to_curve25519 ( | ||
|  |             &x25519SecretKey, | ||
|  |             ed25519SecretKey | ||
|  |         ) | ||
|  | 
 | ||
|  |         return x25519SecretKey | ||
|  |     } | ||
|  | } |