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(); } }