MainLibProj_Hrithik 2.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package MainLibProj_Hrithik --version 2.3.0
                    
NuGet\Install-Package MainLibProj_Hrithik -Version 2.3.0
                    
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.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MainLibProj_Hrithik" Version="2.3.0" />
                    
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.3.0
                    
#r "nuget: MainLibProj_Hrithik, 2.3.0"
                    
#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.3.0
                    
#: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.3.0
                    
Install as a Cake Addin
#tool nuget:?package=MainLibProj_Hrithik&version=2.3.0
                    
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

🆕 MainLibProj_Hrithik — JWT RSA decryption (Latest Release)

🚀 New in v2.3.0:

🔐 RSA Encrypted JWT Decryption & Decoding Support

You can now decrypt RSA-encrypted tokens, decode JWTs, and extract claims securely using a simple API—without handling low-level cryptography.

✨ JWT Feature Highlights

✅ Supports PKCS#1 RSA private keys

✅ 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 Decryption – Usage Example

using MainLibProj_Hrithik.Security;

var decryptor = new JwtRsaDecryptor( @"-----BEGIN RSA PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD... -----END RSA PRIVATE KEY-----" );

var result = decryptor.Decrypt("ENCRYPTED_BASE64_TOKEN");

Console.WriteLine(result.RawJwt);

foreach (var claim in result.Claims) { Console.WriteLine($"{claim.Key} = {claim.Value}"); }

🧠 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

This project is licensed under the MIT License — feel free to use, modify, and distribute it.

💬 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to improve features or fix bugs.

📧 Contact

Author: Hrithik Email: hrithikkalra11@gmail.com

NuGet: MainLibProj_Hrithik

Support my work
If you find this package helpful, consider buying me a coffee ❤️
👉 Buy Me a Coffee

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 145 2/11/2026
2.6.0 141 1/28/2026
2.5.0 126 1/22/2026
2.4.0 121 1/22/2026
2.3.0 120 1/21/2026
2.2.0 295 11/14/2025
2.1.6-Preview 305 11/4/2025 2.1.6-Preview is deprecated because it has critical bugs.
2.1.5-Preview 282 11/4/2025 2.1.5-Preview is deprecated because it has critical bugs.
Loading failed

Version 2.3.0:
- Added RSA-encrypted JWT decryption and decoding support.
- Extract raw JWT and claims using a simple API.
- No breaking changes to existing FIX or utility features.