public void When_Trying_To_Rsa_Sign_With_A_Not_Supported_Algorithm_Then_Null_Is_Returned() { // ARRANGE InitializeFakeObjects(); // ACT var result = _createJwsSignature.SignWithRsa(JwsAlg.ES512, string.Empty, string.Empty); // ASSERT Assert.Null(result); }
public string Generate( JwsPayload jwsPayload, JwsAlg jwsAlg, JsonWebKey jsonWebKey) { if (jwsPayload == null) { throw new ArgumentNullException("jwsPayload"); } if (jsonWebKey == null && jwsAlg != JwsAlg.none) { jwsAlg = JwsAlg.none; } var protectedHeader = ConstructProtectedHeader(jwsAlg); if (jwsAlg != JwsAlg.none) { protectedHeader.Kid = jsonWebKey.Kid; } var serializedProtectedHeader = protectedHeader.SerializeWithDataContract(); var base64EncodedSerializedProtectedHeader = serializedProtectedHeader.Base64Encode(); var serializedPayload = jwsPayload.SerializeWithJavascript(); var base64EncodedSerializedPayload = serializedPayload.Base64Encode(); var combinedProtectedHeaderAndPayLoad = string.Format( "{0}.{1}", base64EncodedSerializedProtectedHeader, base64EncodedSerializedPayload); var signedJws = string.Empty; if (jwsAlg != JwsAlg.none) { switch (jsonWebKey.Kty) { case KeyType.RSA: signedJws = _createJwsSignature.SignWithRsa(jwsAlg, jsonWebKey.SerializedKey, combinedProtectedHeaderAndPayLoad); break; #if NET46 || NET45 case KeyType.EC: signedJws = _createJwsSignature.SignWithEllipseCurve(jsonWebKey.SerializedKey, combinedProtectedHeaderAndPayLoad); break; #endif } } return(string.Format("{0}.{1}", combinedProtectedHeaderAndPayLoad, signedJws)); }