Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12111

I am trying to encrypt requset body in angular using Rsa encryption (node-forge) and decrypt it in ASP.NET Core 6

$
0
0

I am trying to encrypt request body in Angular using RSA encryption (node-forge) and decrypt it in ASP.NET Core 6. While decrypting, I can't get the decrypted body only getting [object object ] as output. I have tried to read it using pem reader but that does not work either.

import { Injectable } from '@angular/core';import * as Forge from 'node-forge';@Injectable({  providedIn: 'root',})export class RSA {  publicKey: string =`-----BEGIN PUBLIC KEY-----  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArHQ09caWERhxf9deHJr2  AXwBUQuUdmjuZRRTAvkx+VkytEdycTgt8wNR53jjCCSeyK4EeeU04nzoTW6Sqh77  gTK3T9rPy6QPjD7IrFNZeLwwDfy5SFe9G2vzbJ1geyMgSdBAMITOXK9cdAnsCC40  dNfPKly3BCf2SI+6Z3zJXghJZfKa2iucGrpW1Jwnxdwbtf7gzYBwmdu7lCz7o93F  pc3Wd7vCCsjl+PafasuGBPPRhqwuo4fbNuTM6D0oaXWd6Y9HoQ6BanortLotoCXO  WPCJxqyAU52V1H4lgxP8bgYPZFGRrrabgbqsvDivohSxj4xd822LleF7VZD9Gtos  UQIDAQAB  -----END PUBLIC KEY-----`;  constructor() {}  encryptWithPublicKey(valueToEncrypt: string): string {     const scheme={    name: 'RSA-OAEP',    hash:'sha256'  };    const rsa = Forge.pki.publicKeyFromPem(this.publicKey);    const encryptedBytes = rsa.encrypt(valueToEncrypt.toString(),'RSA-OAEP');    return window.btoa(encryptedBytes);  }}

I have tried to convert it into the string but got object object:

using Microsoft.AspNetCore.Cors;using System.Security.Cryptography;using System.Text;namespace DotNetServer.Middleware{    [EnableCors("_myAllowSpecificOrigins")]    public class Middleware    {        private readonly RequestDelegate _next;        static string privateKey = @"-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEArHQ09caWERhxf9deHJr2AXwBUQuUdmjuZRRTAvkx+VkytEdycTgt8wNR53jjCCSeyK4EeeU04nzoTW6Sqh77gTK3T9rPy6QPjD7IrFNZeLwwDfy5SFe9G2vzbJ1geyMgSdBAMITOXK9cdAnsCC40dNfPKly3BCf2SI+6Z3zJXghJZfKa2iucGrpW1Jwnxdwbtf7gzYBwmdu7lCz7o93Fpc3Wd7vCCsjl+PafasuGBPPRhqwuo4fbNuTM6D0oaXWd6Y9HoQ6BanortLotoCXOWPCJxqyAU52V1H4lgxP8bgYPZFGRrrabgbqsvDivohSxj4xd822LleF7VZD9GtosUQIDAQABAoIBAFnrjeHJVl47nJLIPW407qj/e8BChXroY8WYv2ABh6k4dVPDHU0jufHIfWBwjBCm55RECFl2xgiCkK4vRZIm7YUEaMjekxLfzKuX4RLZswFdPsFMUWADP7uYoii0NqZ+Pku+pnmmBeQWG+L1eXkafoeeL4srJNKp86UKLGvhiS3Zz9QgvJKw2nYoe901Jh+nngzhO9MaTGWLgJa04aTMQCZ8qdA1gG6gQ9W9UnVEY7m8CzkSyXFXz/JlvZ/WY8Wl7PM9+2ovl4np5S4ZMaPBJvVm0/W22MsNDMo6fo8/yiGLu72QyY4X8zQVPp5rtPA1tYr9UcEnhi16AHvzDDUaoHECgYEA6sP2fzqYWisJz+d+deZXmcT2CUCscJJAeXmyH+DZreEJFmF2D+SHVx1+dcPSDFjfKgmL3u9l0A4gw4jVz3J64QulZtL/DhNKCj6/NFAjfd2lKx1pcHW3ZOkiMES1FxWPcj7SVkG/PDSetDRQu3mLUwWytch2fwCEGaSLJ6Q45ucCgYEAvA1oq29KCrdcfLH0lh5X58MxHHCGNkT6S2gFY44r8MrQy2Cu3zepQIp+EIVzfVeUALgk7+5gqbkZf+gUKihSIRg0n6CjplTesJQrGfA/IAmPUpSvKSTYUWhxYLgD6JoTNPHcjZIsQKz3objDZmO6zNaaEDiuDo3AhkufBOYFxAcCgYEApAyz30wu0jNo8+MsN27yn/1GgEi1NyS78SbdFfGlqx+pnf4U5h4nhPSTPe/Mg9xGdbWeC/b2CmEU/A5OelvhCgl9V1Dx8gAAqRAXxJKLepS7qlkvKOrZcKaIwXoBoVPrnUXQ7X2cCJIspHg6Qgc5GJbOvsCKLU1LAjA9HUJgkNkCgYEAjunp2A+Vx5seMK3VYZjh2YKf+isR9IBrb484OTa88hxQnZ92hrF4cVJPCCNDZ8h89Cb9+1HAKHxBgtFPMdK+x+Prajzc4fWx36RbNTU95A0f3PSeQbh8pTGoqIZwgf9GBYChyv2BoA1TjJYr+c5lEnMtVpKcxPa5j9Y8na5qR1UCgYEAiA4bqKD7cJy2GfNokZhxjej8Y9QGf8fKL4rhh3aIl4diQgUfi+1F12McPmlwsvfnsuIdGkt/eDdp0Phr/smYbEmKniYQBcHmLc97OH99TyNzySMVeZ5RrWP1WXLkWOeDOzpuZwKrUuXTDvHJfCsEqmlEujUWeGXxOVN/aOFZI2s=-----END RSA PRIVATE KEY-----";       public Middleware(RequestDelegate next)       {           _next = next;       }       public async Task Invoke(HttpContext httpContext)       {            if (httpContext.Request.Method == "POST")            {                try                 {                    HttpRequest request = httpContext.Request;                    using (StreamReader reader = new StreamReader(request.Body))                    {                        string cypherText = await reader.ReadToEndAsync();                        byte[] bytesCypherText = Convert.FromBase64String(cypherText);                        RSA rsa = RSA.Create();                        rsa.ImportFromPem(privateKey);                        byte[] decryptedBytes = rsa.Decrypt(bytesCypherText,RSAEncryptionPadding.OaepSHA256);                        string decryptedText = Encoding.UTF8.GetString(decryptedBytes) ;                        Console.WriteLine(decryptedText);                        httpContext.Request.Body = new MemoryStream(decryptedBytes);                        httpContext.Request.ContentLength = decryptedBytes.Length;                    }                    await _next(httpContext);                }                catch (Exception e )                {                    e.ToString();                    throw;                }            }            else            {                await _next(httpContext);            }        }    }}

Viewing all articles
Browse latest Browse all 12111

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>