Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 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());
         });
     }
 }