public T104 GetSymmetricKeyAndSignature() { Request request = new Request(appConfig); request.GlobalInfo.InterfaceCode = "T104"; T104 response = (T104)SendRequest(request); byte[] privateKey = Convert.FromBase64String(File.ReadAllText(appConfig.PrivateKey)); using (CngKey signingKey = CngKey.Import(privateKey, CngKeyBlobFormat.Pkcs8PrivateBlob)) using (RSACng rsaCng = new RSACng(signingKey)) { byte[] decryptedAESKey = rsaCng.Decrypt(Convert.FromBase64String(response.PasswordAes), RSAEncryptionPadding.Pkcs1); string AESKey = Encoding.UTF8.GetString(decryptedAESKey); File.WriteAllText(appConfig.SessionAESKey, AESKey); } return(response); }
static bool Do104(T104 t) { Nullable<T104> n = new Nullable<T104>(t); return Ensure(n.HasValue && n.Value == t); }