Custom Activity control issue with jose-jwt assembly dependency

Created a custom activity control to call an API url using .Net c# code. Used “BouncyCastle.Crypto.dll” & “jose-jwt.dll” as references in .NET class library (.Net Framework 4.7.2). We are able to successfully create .dll and created nuget package. Created package successfully uploaded into uipath references and got activity. When we ran the activity with required API input parameters then getting below error. Please let me know steps to resolve this issue.
“Could not load file or assembly ‘jose-jwt, Version=, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.”

Here is the class library .dll used code.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Activities;
using System.ComponentModel;
using System.Security.Claims;
using System.Security.Cryptography;
using System.IO;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Security;
namespace BoostTokenCL
public class GetAssertion : CodeActivity
public InArgument PemKey { get; set; }

    public InArgument<string> ClaimIss { get; set; }

    public InArgument<string> APIUrl { get; set; }

    public InArgument<string> ClaimSub { get; set; }

    public OutArgument<string> TokenResult { get; set; }

    protected override void Execute(CodeActivityContext context)
        var pemkey = PemKey.Get(context);
        var iss = ClaimIss.Get(context);
        var url = APIUrl.Get(context);
        var sub = ClaimSub.Get(context);
        var result = GenerateToken(pemkey, iss, url, sub);
        TokenResult.Set(context, result);
    public string GenerateToken(string PemKey, string ClaimIss, string APIUrl, string ClaimSub)
        string token = "";
            string privateKey = File.ReadAllText(PemKey);
            var now = DateTime.Now;
            var unixTimeSeconds = new DateTimeOffset(now).ToUnixTimeSeconds();
            var claims = new List<Claim>();
            claims.Add(new Claim("iss", ClaimIss)); 
            claims.Add(new Claim("iat", unixTimeSeconds.ToString(), ClaimValueTypes.Integer));
            claims.Add(new Claim("aud", APIUrl)); 

            claims.Add(new Claim("sub", ClaimSub));
            claims.Add(new Claim("exp", (unixTimeSeconds + 3600).ToString(), ClaimValueTypes.Integer));
            token = CreateToken(claims, privateKey);
        catch (Exception ex)
            token = ex.Message;

        return token;
    public string CreateToken(List<Claim> claims, string privateRsaKey)
        RSAParameters rsaParams;
        using (var tr = new StringReader(privateRsaKey))
            var pemReader = new PemReader(tr);
            var keyPair = pemReader.ReadObject() as AsymmetricCipherKeyPair;
            if (keyPair == null)
                throw new Exception("Could not read RSA private key");
            var privateRsaParams = keyPair.Private as RsaPrivateCrtKeyParameters;
            rsaParams = DotNetUtilities.ToRSAParameters(privateRsaParams);
        using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
            Dictionary<string, object> payload = claims.ToDictionary(k => k.Type, v => (object)v.Value);
            return Jose.JWT.Encode(payload, rsa, Jose.JwsAlgorithm.RS256);


Got the solution by referring this