0

証明書コレクションにアクセスし、拇印で特定の証明書をターゲットにすることができました。すべてのプロパティにアクセスでき、"HasPrivateKey" は true に設定されています。

CspKeyContainerInfo の「エクスポート可能」は false としてマークされています。

PrivateKey.ToXmlString(false) を実行すると、キーパラメーターは取得されず、モジュラスと指数だけが取得されます。

<RSAKeyValue>
    <Modulus>4hjg1ibWXHIlH...ssmlBfMAListzrgk=</Modulus>
    <Exponent>AQAB</Exponent>
</RSAKeyValue>

しかし、すべての値を取得するために toXmlString(true) に設定すると失敗します:

<RSAKeyValue>
    <Modulus>4hjg1ibWXHIlH...ssmlBfMAListzrgk=</Modulus>
    <Exponent>AQAB</Exponent>
    <P>8QZCtrmJcr9uW7VRex+diH...jLHV5StmuBs1+vZZAQ==</P>
    <Q>8CUvJTv...yeDszMWNCQ==</Q>
    <DP>elh2Nv...cygE3657AQ==</DP>
    <DQ>MBUh5XC...+PfiMfX0EQ==</DQ>
    <InverseQ>oxvsj4WCbQ....LyjggXg==</InverseQ>
    <D>KrhmqzAVasx...uxQ5VGZmZ6yOAE=</D>
</RSAKeyValue>

ただし、証明書を再インポートして「エクスポート可能」とマークすると、上記により、続行する必要があるすべての KeyInformation にアクセスできるようになります。

キーをエクスポート不可に保ち、x509....Certiificate2 オブジェクトを使用してプログラムで toXmlString(true) を使用して情報にアクセスする方法はありますか?

   X509Certificate2Collection xcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByThumbprint, "4678237245FEDC8059D113675955DFB870D36BF4", false);

        foreach (X509Certificate2 x509 in xcollection)
        {
            var y = x509.PrivateKey.ToXmlString(false);
            var f = x509.PrivateKey.ToXmlString(true);
        }

乾杯

4

0 に答える 0