次の方法で共有


CoseSigner.Key を null にできるようになりました

.NET 10 では、 CoseSigner.Key プロパティは nullを返すようになりました。 CoseSignerが RSA キーまたは ECDSA キーによってサポートされている場合、CoseSigner.Keyは null 以外のキーを返します。 ただし、CoseSigner (新しい量子後暗号化 (PQC) 署名アルゴリズム) など、AsymmetricAlgorithmから派生しないキーによってMLDsaがサポートされている場合、CoseSigner.Keynullを返します。

導入されたバージョン

.NET 10

以前の動作

以前は、 CoseSigner.Keynullできませんでした。 型は AsymmetricAlgorithm です。

新しい動作

.NET 10 以降では、 CoseSigner.Keynullできます。 その型は AsymmetricAlgorithm?

using RSA rsaKey = RSA.Create();

CoseSigner signer = new CoseSigner(rsaKey, RSASignaturePadding.Pss, HashAlgorithmName.SHA512);
// signer.Key is rsaKey here.

// CoseKey is a new abstraction for all keys used in COSE.
CoseKey coseKey = new CoseKey(rsaKey, RSASignaturePadding.Pss, HashAlgorithmName.SHA512);
signer = new CoseSigner(coseKey);
// signer.Key is rsaKey here.

using MLDsa mldsa = MLDsa.GenerateKey(MLDsaAlgorithm.MLDsa44);

coseKey = new CoseKey(mldsa);
signer = new CoseSigner(coseKey);
// signer.Key is null here.

破壊的変更の種類

これは動作の 変更 ですが、 ソースの互換性にも影響する可能性があります。

変更の理由

ML-DSA などの新しい署名アルゴリズムの導入により、.NET では、すべての非対称アルゴリズムの汎用基底クラスとして AsymmetricAlgorithm を使用する必要がなくなっています。 同様に、 CoseSigner は、 AsymmetricAlgorithmから派生しないキーを使用して構築できるようになりました。 この場合 CoseSigner.Key 基になるキーを表す AsymmetricAlgorithm を返すことはできません。そのため、代わりに null が返されます。

CoseSigner.Keyを使用しても問題ありませんが、必ずnull値を処理してください。

影響を受ける API