MainLibProj_Hrithik 2.6.1

dotnet add package MainLibProj_Hrithik --version 2.6.1
                    
NuGet\Install-Package MainLibProj_Hrithik -Version 2.6.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MainLibProj_Hrithik" Version="2.6.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MainLibProj_Hrithik" Version="2.6.1" />
                    
Directory.Packages.props
<PackageReference Include="MainLibProj_Hrithik" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MainLibProj_Hrithik --version 2.6.1
                    
#r "nuget: MainLibProj_Hrithik, 2.6.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MainLibProj_Hrithik@2.6.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MainLibProj_Hrithik&version=2.6.1
                    
Install as a Cake Addin
#tool nuget:?package=MainLibProj_Hrithik&version=2.6.1
                    
Install as a Cake Tool

MainLibProj_Hrithik

A powerful, production-ready .NET utility library providing FIX protocol trading, JWT RSA decryption, and Azure & document utilities β€” all in one package.

🧱 Installation

Install via NuGet Package Manager:

dotnet add package MainLibProj_Hrithik

Or using the Visual Studio Package Manager Console:

Install-Package MainLibProj_Hrithik

πŸš€ New in v2.6.1:

  • Updated internal and third-party dependencies
  • No functional or breaking changes
  • Improves security, stability, and compatibility

πŸ†• MainLibProj_Hrithik β€” JWT RSA decryption (Latest Release)

πŸš€ New in v2.6.0:

πŸ†• Secure Transactions (JWS + JWE) β€” v2.6.0+

Recommended for new implementations

The Secure Transactions module introduces a banking-style, envelope-based security model for exchanging business payloads between services.

It is built on industry-standard JWT technologies:

JWS (RS256) for integrity and non-repudiation

JWE (RSA-OAEP + AES) for payload confidentiality

Time-bound tokens to mitigate replay attacks

Strongly-typed payload support

Clean separation of crypto and business logic

This approach is commonly used in banking, payment gateways, and financial middleware.

πŸ” How Secure Transactions Work

Business Object ↓ JSON Serialization ↓ JWE Encryption (Confidentiality) ↓ Secure Envelope ↓ JWS Signature (Integrity) ↓ Transport (HTTP / Messaging)

βœ… Secure Transaction – Usage Example

// Business payload var payload = new TestTransaction { TransactionId = "TX123", Amount = 5000, Currency = "INR" };

// Create secure token var token = secureService.CreateSecureRequest( payload, recipientPublicKey: serverPublicKey, senderPrivateKey: clientPrivateKey, options: new SecureTransactionOptions { Issuer = "bank-client", Audience = "payment-api", ExpiryMinutes = 5 });

// Validate and decrypt var result = secureService.DecryptAndValidate<TestTransaction>( token, senderPublicKey: clientPublicKey, recipientPrivateKey: serverPrivateKey);

Console.WriteLine(result.Data.TransactionId); Console.WriteLine(result.Data.Amount);


OLD PACKAGE SUMMARY FOR REVIEW:

πŸ” RSA Encrypted JWT Decryption & Decoding Support using AES to resolve encryption size issue in package 2.4.0

You can now encrypt and decrypt RSA tokens, encode-decode JWTs, and extract claims securely using a simple APIβ€”without handling low-level cryptography.

✨ JWT Feature Highlights

βœ… Supports PKCS#1 RSA private keys

βœ… Supports PKCS#1 RSA public keys for encryption

βœ… Automatically encrypts + encode JWT

βœ… Accepts Base64 encrypted tokens

βœ… Automatically decrypts + decodes JWT

βœ… Returns Raw JWT and Claims Dictionary

βœ… Ideal for APIs, Azure Functions, APIM, Microservices

βš™οΈ How It Works

πŸ” JWT RSA ENCRYPTION – Usage Example

		 var payload = new JObject
        {
            ["dealer_id"] = "",
            ["serial_no"] = "abc"
		};
		string publicKeyPem = @"
        -----BEGIN PUBLIC KEY-----
        l54QhuRz9Lb9tuE1DBvCFn/a0zfQTQdbfNsnplaNJwIDAQAB......
        -----END PUBLIC KEY-----
        ";
        var encryptor = new HybridJwtEncryptor(
                          publicKeyPem,
                        "a-string-secret-at-least-256-bits-long"
                         );

        var encryptedPayload = encryptor.EncryptPayload(payload);


        Console.WriteLine("Encrypted JWT:");
        Console.WriteLine(encryptedPayload);

πŸ” JWT RSA ENCRYPTION – Usage Example

		 var decryptorkey ="-----BEGIN RSA PRIVATE KEY-----\r\nMIIAEz89ibQKJOOnit81zmxTP.................................pvlnviB9VeJWtBU6\r\n-----END RSA PRIVATE KEY-----";

        var encryptedJson = @"{
                            ""encryptedKey"": ""FWHzWE7mV84QuT7PmUp1j7/rPTgLMWoW9EfPCWhO08giwNkQLzlebVQBe71pifeSVBHeu4q6..................TVwGu3WjrH+y5ItyUWPCOtpiuhOh+Q=="",
                            ""nonce"": ""1PksuW.........g2sgSg"",
                            ""tag"": ""nmO+ln............Tw=="",
                            ""cipherText"": ""eaaRbYvq6plPUNvpkvl4Ardcly6PpaJLredjFLiAA2X2eD3MyE064wTbi+gyd+K6ZiUBOJ+GfkvUQ/U5eNEvDIdn+.................................../aPnkq8Fu6kpcPOrk9Y7NbGxv3+KE3j5Mv5bvt7SSiD8AZQiTls+h""
                             }";

        JObject encryptedPayloads = JObject.Parse(encryptedJson);

        var decryptor = new HybridJwtDecryptor(decryptorkey);

        var decryptedClaims = decryptor.Decrypt(encryptedPayloads);

        Console.WriteLine(
            Newtonsoft.Json.JsonConvert.SerializeObject(
                decryptedClaims,
                Newtonsoft.Json.Formatting.Indented
            )
        );

🧠 Common Use Cases

Secure API-to-API authentication

Decrypting tokens from external identity providers

Azure Functions & APIM integrations

Enterprise microservice security flows

πŸ†• FIX Protocol Support

πŸš€ Introduced in v2.2.0

Integrated FIX protocol connectivity using QuickFIX/n directly into the library.

Send Equity, Fractional, Notional, Option, and Multi-Leg orders using simple JSON-based requestsβ€”no FIX expertise required.

βš™οΈ How FIX Support Works

Handles FIX session lifecycle

Manages authentication & heartbeats

Builds and parses FIX messages internally

Exposes a clean JSON-based API

🧩 Other Usage Example using MainLibProj_Hrithik.Fix; using System.Text.Json;

// Step 1: Configure FIX Connection var config = new FixConnectionConfig { // Required: Session identifiers SenderCompId = "", TargetCompId = "",

// Optional: Sub IDs
SenderSubId = "YOUR_SENDER_SUB_ID",
TargetSubId = "TARGET_SUB_ID",

// Optional: Authentication
Username = "YOUR_USERNAME",
Password = "YOUR_PASSWORD",

// Required: FIX configuration file path
FixSettingsFilePath = "path/to/fix.cfg",

// Certificate options
CertificatePath = "C:\\path\\to\\certificate.cer",
CertificatePassword = "cert_password_if_any",

// Connection settings
HostName = "your.fixserver.com",
Port = 12345,
ProxyPort = 15000,
HeartbeatInterval = 30,
ResponseTimeoutSeconds = 20

};

// Step 2: (Optional) Load certificate from Azure Key Vault var configWithKeyVault = new FixConnectionConfig { SenderCompId = "YOUR_SENDER_COMP_ID", TargetCompId = "FIX_TARGET_COMP_ID", Username = "YOUR_USERNAME", Password = "YOUR_PASSWORD", FixSettingsFilePath = "path/to/fix.cfg",

// Azure Key Vault integration
KeyVaultUrl = "https://your-keyvault.vault.azure.net/",
CertificateName = "fixcert"

};

// Step 3: Initialize FIX Gateway Client using var client = new FixJsonGatewayClient(config, null); await client.InitializeAsync();

// Step 4: Send Orders await SendEquityOrder(client); await SendFractionalOrder(client); await SendOptionOrder(client); await SendMultiLegOrder(client); await CancelOrder(client); await ReplaceOrder(client);

🧾 Example: Send an Equity Order static async Task SendEquityOrder(FixJsonGatewayClient client) { Console.WriteLine("\n=== Sending Equity Order ===");

var request = new FixJsonRequest
{
    MessageType = "NewOrderSingle",
    Fields = new Dictionary<string, object>
    {
        { "ClOrdID", "ORDER-" + Guid.NewGuid() },
        { "Symbol", "AAPL" },
        { "Side", "1" },          // Buy
        { "OrdType", "2" },       // Limit
        { "OrderQty", 100 },
        { "Price", 150.50 },
        { "Account", "YOUR_ACCOUNT_NUMBER" },
        { "TimeInForce", "0" },   // Day
        { "Currency", "USD" },
        { "SecurityType", "CS" }, // Common Stock
        { "ExDestination", "NASDAQ" },
        { "Rule80A", "I" }        // Individual
    }
};

var response = await client.SendMessageAsync(request);

Console.WriteLine($"Status: {response.Status}");
Console.WriteLine($"Response: {JsonSerializer.Serialize(response.Fields, new JsonSerializerOptions { WriteIndented = true })}");

if (response.Status == "Rejected")
    Console.WriteLine($"Error: {response.ErrorMessage}");

}

πŸ’‘ Supported Order Types Type Method Equity SendEquityOrder() Fractional SendFractionalOrder() Option SendOptionOrder() Multi-Leg SendMultiLegOrder() Cancel CancelOrder() Replace ReplaceOrder() πŸ” Key Features

βœ… Native QuickFIX/n integration

βœ… Supports Azure Key Vault certificates

βœ… JSON-based order structure for easy integration

βœ… Plug-and-play FIX connectivity

βœ… Built for Equity, Fractional, Notional, Option, and Multi-leg orders

🧠 OTHER Usage Examples πŸ“¦ Upload File to Azure Blob Storage using MainLibProj_Hrithik.AzureHelpers;

var connectionString = "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net;"; var containerName = "uploads"; var filePath = "C:\Users\Hrithik\Documents\data.json";

await BlobHelper.UploadFileAsync(connectionString, containerName, filePath); Console.WriteLine("βœ… File uploaded successfully!");

πŸ”‘ Retrieve Secret from Azure Key Vault using MainLibProj_Hrithik.AzureHelpers;

var secretValue = await KeyVaultHelper.GetSecretAsync("https://myvault.vault.azure.net/", "StorageAccountKey"); Console.WriteLine($"πŸ”’ Secret value: {secretValue}");

πŸ“Š Convert Excel File to JSON using MainLibProj_Hrithik.Converters;

var excelFilePath = "C:\Data\Orders.xlsx"; var json = ExcelConverter.ConvertToJson(excelFilePath);

Console.WriteLine(json);

πŸ“ Convert Word Document to PDF using MainLibProj_Hrithik.Converters;

var docxPath = "C:\Docs\Invoice.docx"; var pdfPath = "C:\Docs\Invoice.pdf";

WordToPdfConverter.Convert(docxPath, pdfPath); Console.WriteLine("πŸ“„ PDF created successfully!");

🧰 Tech Stack

.NET 8.0

Azure SDK for .NET

OpenXML SDK

PdfSharpCore

Newtonsoft.Json

πŸ“„ License

MIT License

πŸ‘€ Author

Hrithik Kalra

.NET | API Security | Fintech Systems

πŸ“§ Email: hrithikkalra11@gmail.com

GitHub: https://github.com/hrithikalra

LinkedIn: https://www.linkedin.com/in/hrithik-kalra-b6836a246/

If you find this package useful, consider supporting its development:

Support is entirely optional and helps sustain ongoing development and maintenance.


Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.6.1 109 2/11/2026
2.6.0 124 1/28/2026
2.5.0 111 1/22/2026
2.4.0 104 1/22/2026
2.3.0 103 1/21/2026
2.2.0 278 11/14/2025
2.1.6-Preview 292 11/4/2025 2.1.6-Preview is deprecated because it has critical bugs.
2.1.5-Preview 271 11/4/2025 2.1.5-Preview is deprecated because it has critical bugs.
Loading failed

Maintenance release:
- Updated internal and third-party dependencies
- No functional or breaking changes