We’re happy to announce the release of GroupDocs.Signature for .NET v26.9, available as of September 2026. This release is a security‑focused update that introduces .NET 10 support, discontinues .NET Standard 2.1, and enforces stricter defaults for loading external resources, hashing algorithms, and certificate validation. It also adds support for signing Word documents with post‑quantum (ML‑DSA) certificates and resolves several critical bugs related to verification, logging, and platform‑specific behavior.
今回のリリースの新機能
- [Feature] .NET 10 のサポートと .NET Standard 2.1 の廃止 (SIGNATURENET-5938)
- [Enhancement] 外部リソースはデフォルトでロードされなくなりました (SIGNATURENET-5950)
- [Enhancement] PDF デジタル署名はデフォルトで SHA‑256 を使用し、HashAlgorithm を尊重します (SIGNATURENET-5976)
- [Enhancement] SignatureFont が .NET 6 以降で System.Drawing 型を公開しなくなりました (SIGNATURENET-5943)
- [Enhancement] 有効期限が切れた、またはまだ有効でない証明書での署名はデフォルトで拒否されます (SIGNATURENET-5995)
- [Enhancement] Word 文書をポスト量子 (ML‑DSA) 証明書で署名できるようになりました (SIGNATURENET-5996)
- [Bug] PDF デジタル署名の検証が暗号的にチェックされていませんでした (SIGNATURENET-5978)
- [Bug] PDF 文書の検証時に SubjectName と IssuerName が無視されていました (SIGNATURENET-5997)
- [Bug] タイムスタンプサーバーの認証情報は、ユーザー名とパスワードの両方が設定されている場合にのみ送信されていました (SIGNATURENET-5998)
- [Bug] プレゼンテーションと Word 文書を画像として保存する際、Linux と macOS で失敗していました (SIGNATURENET-5999)
- [Bug] アーカイブ内の文書に対して LoadExternalResources が無視されていました (SIGNATURENET-6000)
- [Bug] SVG 画像の外部画像およびスタイルシートが常にロードされていました (SIGNATURENET-6001)
- [Bug] リンク画像を含むスプレッドシートの検索・検証で ArgumentNullException がスローされました (SIGNATURENET-6002)
- [Bug] CertificateVerifyOptions.Expired がローカルの UTC オフセットで誤って計算されていました (SIGNATURENET-6003)
- [Bug] SignatureSettings.LogLevel が効果を持っていませんでした (SIGNATURENET-6004)
- [Bug] 再利用された VerifyOptions が、以前に検証した文書の署名を報告していました (SIGNATURENET-6005)
- [Bug] 再利用された DigitalSignOptions が、最初の証明書とコメントで後続のプレゼンテーションに署名していました (SIGNATURENET-6006)
- [Enhancement] 内部改善 (SIGNATURENET-5979)
パブリック API の変更
| メンバー | 変更 |
|---|---|
LoadOptions.SkipExternalResources |
新規。 bool、デフォルトは true。true の場合、WhitelistedResources に一致するものを除き外部リソースはロードされません。 |
LoadOptions.WhitelistedResources |
新規。 List<string>、デフォルトは空。SkipExternalResources が true のときにロードが許可されるアドレスの一部。いずれかを含むアドレスは大文字小文字を無視してロードされます。null を設定するとリストはクリアされます。 |
LoadOptions.LoadExternalResources |
非推奨。 依然として機能しますが、SkipExternalResources と逆の意味です。デフォルトは true から false に変更されました。使用するとコンパイラ警告 CS0618 が出ます。 |
SignatureFont の System.Drawing.Font からの暗黙的変換 |
削除。 .NET 6、.NET 8、.NET 10 ビルドから削除。 .NET Framework ビルドでは 非推奨。代わりに SignatureFont のプロパティを直接設定してください。 |
SignOptions.HashAlgorithm |
署名自体の変更はありません。PDF デジタル署名で有効になり、以前は無視されていました。 |
DigitalVerifyOptions.SubjectName、DigitalVerifyOptions.IssuerName |
署名自体の変更はありません。PDF 文書で有効になり、以前は無視されていました。 |
SignatureSettings.LogLevel |
署名自体の変更はありません。現在は、含まれるレベルのメッセージだけがロガーに送られ、LogLevel.None は何も記録しません。以前は値に関係なくすべてのメッセージが記録されていました。LogLevel の説明文も修正されました。 |
VerificationResult.Succeeded、VerificationResult.TotalSignatures |
署名自体の変更はありません。1 つの VerifyOptions オブジェクトを複数回の Verify 呼び出しで使用した場合、直近に検証した文書の署名のみが列挙されます。 |
DigitalSignOptions.AllowExpired |
新規。 bool、デフォルトは false。false の場合、有効期限が切れた証明書での署名は GroupDocsSignatureException をスローします。true の場合、署名は行われ警告が記録されます。 |
DigitalSignOptions.AllowNotYetValid |
新規。 bool、デフォルトは false。有効期間がまだ開始していない証明書に対して同様の動作をします。 |
新機能
「今回のリリースの新機能」 と 「パブリック API の変更」 に記載されたもの以外の新機能はありません。
コード例
信頼できる外部リソースのみを許可する:
LoadOptions loadOptions = new LoadOptions
{
WhitelistedResources = new List<string> { "https://cdn.example.com/images/" }
};
using (Signature signature = new Signature("sample.docx", loadOptions))
{
// Only images from https://cdn.example.com/images/ are loaded.
}
SHA‑384 で署名し、期限切れ証明書を警告付きで使用する:
using (Signature signature = new Signature("sample.pdf"))
{
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
{
Password = "1234567890",
HashAlgorithm = HashAlgorithm.Sha384 // honoured from this release; the default is SHA-256
};
signature.Sign("signed.pdf", options);
}
期限切れ証明書の使用を明示的に許可して署名する:
SignatureSettings settings = new SignatureSettings(new ConsoleLogger());
using (Signature signature = new Signature("sample.pdf", settings))
{
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
{
Password = "1234567890",
AllowExpired = true
};
signature.Sign("signed.pdf", options);
// If certificate.pfx has expired, the document is signed and the console shows a warning such as:
// The signing certificate expired on 2019-05-01 12:00 UTC (subject "CN=...", thumbprint ...).
}
ポスト量子 ML‑DSA 証明書で Word 文書に署名する:
using (Signature signature = new Signature("sample.docx"))
{
DigitalSignOptions options = new DigitalSignOptions("ml-dsa-65.pfx")
{
Password = "1234567890"
};
signature.Sign("signed.docx", options);
}
エラーレベルと警告レベルのみを表示するようにロギングを構成する:
SignatureSettings settings = new SignatureSettings(new ConsoleLogger())
{
// Errors and warnings, without the step-by-step traces.
LogLevel = LogLevel.Error | LogLevel.Warning
};
アップデートの取得方法
NuGet
NuGet 経由で最新の GroupDocs.Signature パッケージにアップグレードしてください: GroupDocs.Signature 26.9.0
インストールコマンド:
dotnet add package GroupDocs.Signature --version 26.9.0
直接ダウンロード
GroupDocs.Signature for .NET 26.9 ページからアセンブリをダウンロードしてください。