コード例 #1
0
        private bool Extraer(ref authTokenType token, string alias, ref byte[] modulus, ref byte[] exponent)
        {
            LunaXml.xmCryptoService client = new xmCryptoService();
            try
            {
                extract ex = new extract();
                ex.KeyAlias = alias;
                //ex.WrappingOptions = new WrappingOptionsType();
                ex.AuthToken = token;
                var res = client.extract(ex);
                token = res.AuthToken;
                if (res.Result.ResultMajor != null && res.Result.ResultMajor == "urn:oasis:names:tc:dss:resultmajor:Success")
                {
                    KeyValueType    type    = (KeyValueType)res.KeyInfo.Items[0];
                    RSAKeyValueType rsatype = (RSAKeyValueType)type.Item;
                    modulus  = rsatype.Modulus;
                    exponent = rsatype.Exponent;
                    return(true);
                }

                else
                {
                    Log.Error((res.Result.ResultMessage != null ? res.Result.ResultMessage.Value : ""));
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log.Error("Error al crear la llave privada " + ex);
                return(false);
            }
            finally
            {
                client.Dispose();
            }
        }