Exemplo n.º 1
0
        /// <summary>
        /// 从本地文件中读取用来签发 Token 的 RSA Key
        /// </summary>
        /// <param name="filePath">存放密钥的文件夹路径</param>
        /// <param name="withPrivate"></param>
        /// <param name="keyParameters"></param>
        /// <returns></returns>
        public static bool TryGetKeyParameters(string filePath, bool withPrivate, out RSAParameters keyParameters)
        {
            string filename = withPrivate ? "key.json" : "key.public.json";

            keyParameters = default(RSAParameters);
            if (Directory.Exists(filePath) == false || File.Exists(Path.Combine(filePath, filename)) == false)
            {
                return(false);
            }

            RsaParameterStorage parameters = JsonConvert.DeserializeObject <RsaParameterStorage>(File.ReadAllText(Path.Combine(filePath, filename)));

            keyParameters = new RSAParameters
            {
                D        = parameters.D,
                DP       = parameters.DP,
                DQ       = parameters.DQ,
                Exponent = parameters.Exponent,
                InverseQ = parameters.InverseQ,
                Modulus  = parameters.Modulus,
                P        = parameters.P,
                Q        = parameters.Q
            };
            return(true);
        }
Exemplo n.º 2
0
        // 转换成 json 字符串
        static string ToJsonString(this RSAParameters parameters)
        {
            var content = new RsaParameterStorage();

            content.D        = parameters.D;
            content.DP       = parameters.DP;
            content.DQ       = parameters.DQ;
            content.Exponent = parameters.Exponent;
            content.InverseQ = parameters.InverseQ;
            content.Modulus  = parameters.Modulus;
            content.P        = parameters.P;
            content.Q        = parameters.Q;
            return(JsonConvert.SerializeObject(content));
        }