jose-jwt icon indicating copy to clipboard operation
jose-jwt copied to clipboard

Exception: RsaUsingSha alg expects key to be of RSA type

Open Lionberg opened this issue 2 years ago • 1 comments

JWT.Encode method throws exception complaining on invalid key, but the key is RSA type and valid.

`

const string key = @"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDRsqElHKG158ZujNSLzDR9Btv/o2EWNO74b24jUpd3U2Am461rakorD0jm0rFEi5yqHDkPhSS+WW6pSY32w5eTuNTEGhGcoZFrnzHAEO6W4tBRqtS2UTA84zvA92DTHyDK+HKVmQW9JmA4uaPe1CEwVS4ZCGreviUXu66fl1iSUUcgrPV6K2E1TrpbIsWP1uHeZDOhtLHkT6ubrcgC1VW3QMaiC4uAjYxeWsGhhKdr4Wr2q3ywU1OmBlbQOJva29qrAVhykqv0CxBDuezIZbaeJKvQjyd4BAXnYDQwFcXfjSXCNPHFjSi9g7E5okx/E/eeS4bBQ35rzShoOwhb0a0VK5gZm7MODtXiYZX+ws7F1ioBCOzHVJhimkXWBvSNbvqQRApBL57zD19DUw7btfjqYx4lXJj/lYG+ON72O4tzCa5nvObmIgnYcWxypQYBFo6UZfYcAfSL4t4HGN5eyON7qPs4Woy3lzhJkKLVvHu/+W7PvEgAvQucPzh0pU4O+q8= hms\dmitryl@PRCD1DMITRY
";
string ssToken;
            MssGetJWTTokenRS512("{\r\n  \"extra\": \"param\",  \"alg\": \"RS512\",\r\n  \"typ\": \"JWT\"\r\n}",
                "{\r\n  \"sub\": \"1234567890\",\r\n  \"name\": \"Dmitry Lubenskiy\",\r\n  \"iat\": 1516239022\r\n}",
                key, out ssToken);
public void MssGetJWTTokenRS512(string ssHeaderJson, string ssPayloadJson, string ssKey, out string ssToken) {
	
	 Dictionary<string, object> hvalues = JsonConvert.DeserializeObject<Dictionary<string, object>>(ssHeaderJson);
            var header = hvalues;

            Dictionary<string, object> pvalues = JsonConvert.DeserializeObject<Dictionary<string, object>>(ssPayloadJson);
            var payload = pvalues;

            var key = Encoding.UTF8.GetBytes(ssKey);

            ssToken = JWT.Encode(payload, key, JwsAlgorithm.RS512, header);
        } 

Lionberg avatar Jan 18 '23 15:01 Lionberg

Hi @Lionberg ,

  1. what are exception details?
  2. your string key ssh-rsa .... is not something library supports as a RSA key input. Please see https://github.com/dvsekhvalnov/jose-jwt#rs--and-ps--family for supported key types details.

dvsekhvalnov avatar Jan 19 '23 07:01 dvsekhvalnov