#import NS_ASSUME_NONNULL_BEGIN @protocol MTBignum @end @protocol MTRsaPublicKey @end @protocol MTBignumContext - (id)create; - (id)clone:(id)other; - (void)setConstantTime:(id)other; - (void)assignWordTo:(id)bignum value:(unsigned long)value; - (void)assignHexTo:(id)bignum value:(NSString *)value; - (void)assignBinTo:(id)bignum value:(NSData *)value; - (void)assignOneTo:(id)bignum; - (void)assignZeroTo:(id)bignum; - (bool)isOne:(id)bignum; - (bool)isZero:(id)bignum; - (NSData *)getBin:(id)bignum; - (int)isPrime:(id)bignum numberOfChecks:(int)numberOfChecks; - (int)compare:(id)a with:(id)b; - (bool)modAddInto:(id)result a:(id)a b:(id)b mod:(id)mod; - (bool)modSubInto:(id)result a:(id)a b:(id)b mod:(id)mod; - (bool)modMulInto:(id)result a:(id)a b:(id)b mod:(id)mod; - (bool)modExpInto:(id)result a:(id)a b:(id)b mod:(id)mod; - (bool)addInto:(id)result a:(id)a b:(id)b; - (bool)subInto:(id)result a:(id)a b:(id)b; - (bool)mulInto:(id)result a:(id)a b:(id)b; - (bool)expInto:(id)result a:(id)a b:(id)b; - (bool)modInverseInto:(id)result a:(id)a mod:(id)mod; - (unsigned long)modWord:(id)a mod:(unsigned long)mod; - (bool)rightShift1Bit:(id)result a:(id)a; - (id)rsaGetE:(id)publicKey; - (id)rsaGetN:(id)publicKey; @end @protocol EncryptionProvider - (id)createBignumContext; - (NSData * _Nullable)rsaEncryptWithPublicKey:(NSString *)publicKey data:(NSData *)data; - (NSData * _Nullable)rsaEncryptPKCS1OAEPWithPublicKey:(NSString *)publicKey data:(NSData *)data; - (id)parseRSAPublicKey:(NSString *)publicKey; -(NSData * _Nonnull)macosRSAEncrypt:(NSString *) publicKey data: (NSData *)data; @end NS_ASSUME_NONNULL_END