using Newtonsoft.
Json;
using [Link];
using [Link];
using [Link];
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EinvoiceAuth
{
class Program
{
static void Main(string[] args)
{
call_server_api();
}
public static void call_server_api()
{
try
{
string public_key = "<Public Key>";
HttpClient client = new HttpClient();
string uri = "<URL>/v1.04/auth";
[Link]("client-id", "<Client ID>");
[Link]("client-secret", "<Client
Secret>");
string userName = "<User Id>";
string password = "<Password>";
[Link]("gstin", "<GSTIN>");
byte[] _aeskey = generateSecureKey();
string straesKey = Convert.ToBase64String(_aeskey);
RequestPayloadN aRequestPayload = new RequestPayloadN();
Auth data = new Auth();
[Link] = password;
[Link] = straesKey;
[Link] = userName;
[Link] = false;
string authStr = [Link](data);
byte[] authBytes = [Link](authStr);
[Link] = Encrypt(Convert.ToBase64String(authBytes),
public_key);
string abc = [Link](aRequestPayload);
HttpResponseMessage res = [Link](uri,
aRequestPayload).Result;
if ([Link])
{
[Link]("Call is success");
string verification = [Link]().Result;
[Link]($"Response{verification}");
AuthResponse authResponse =
[Link]<AuthResponse>().Result;
string sek = DecryptBySymmerticKey([Link],
_aeskey);
[Link]($"Sek {sek}");
}
else
{
var stream = [Link]().Result;
StreamReader reader = new StreamReader(stream);
string text = [Link]();
string err = [Link];
[Link]($"error Response{text} reason{err}");
}
}
catch (Exception ex)
{
[Link]([Link]());
}
}
public static string DecryptBySymmerticKey(string encryptedText, byte[]
key)
{
try
{
byte[] dataToDecrypt = Convert.FromBase64String(encryptedText);
var keyBytes = key;
AesManaged tdes = new AesManaged();
[Link] = 256;
[Link] = 128;
[Link] = keyBytes;
[Link] = [Link];
[Link] = PaddingMode.PKCS7;
ICryptoTransform decrypt__1 = [Link]();
byte[] deCipher = decrypt__1.TransformFinalBlock(dataToDecrypt, 0,
[Link]);
[Link]();
string EK_result = Convert.ToBase64String(deCipher);
// var EK = Convert.FromBase64String(EK_result);
// return EK;
return EK_result;
}
catch (Exception ex)
{
throw ex;
}
}
public static byte[] generateSecureKey()
{
Aes KEYGEN = [Link]();
byte[] secretKey = [Link];
return secretKey;
}
public static string Encrypt(string data, string key)
{
byte[] keyBytes =
Convert.FromBase64String(key); // your key here
AsymmetricKeyParameter asymmetricKeyParameter =
[Link](keyBytes);
RsaKeyParameters rsaKeyParameters =
(RsaKeyParameters)asymmetricKeyParameter;
RSAParameters rsaParameters = new RSAParameters();
[Link] = [Link]();
[Link] =
[Link]();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
[Link](rsaParameters);
byte[] plaintext = [Link](data);
byte[] ciphertext = [Link](plaintext, false);
string cipherresult = Convert.ToBase64String(ciphertext);
//string cipherresult = [Link](ciphertext);
return cipherresult;
}
}
public class Auth
{
public string Password { get; set; }
public string AppKey { get; set; }
public string UserName { get; set; }
public Boolean ForceRefreshAccessToken { get; set; }
}
public class RequestPayloadN