private static void DecodeDssParameters(byte[] encodedParameters, out byte[] p, out byte[] q, out byte[] g) { byte[] pLocal = null; byte[] qLocal = null; byte[] gLocal = null; unsafe { encodedParameters.DecodeObject( CryptDecodeObjectStructType.X509_DSS_PARAMETERS, delegate(void *pvDecoded, int cbDecoded) { Debug.Assert(cbDecoded >= sizeof(CERT_DSS_PARAMETERS)); CERT_DSS_PARAMETERS *pCertDssParameters = (CERT_DSS_PARAMETERS *)pvDecoded; pLocal = pCertDssParameters->p.ToByteArray(); qLocal = pCertDssParameters->q.ToByteArray(); gLocal = pCertDssParameters->g.ToByteArray(); } ); } p = pLocal; q = qLocal; g = gLocal; }
private static void DecodeDssParameters(byte[] encodedParameters, out byte[] p, out byte[] q, out byte[] g) { unsafe { (p, q, g) = encodedParameters.DecodeObject( CryptDecodeObjectStructType.X509_DSS_PARAMETERS, delegate(void *pvDecoded, int cbDecoded) { Debug.Assert(cbDecoded >= sizeof(CERT_DSS_PARAMETERS)); CERT_DSS_PARAMETERS *pCertDssParameters = (CERT_DSS_PARAMETERS *)pvDecoded; return(pCertDssParameters->p.ToByteArray(), pCertDssParameters->q.ToByteArray(), pCertDssParameters->g.ToByteArray()); }); } }