問題タブ [signedxml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2681 参照

c# - RSACryptoServiceProviderのCSPパラメーターを変更する方法

SignedXMLクラスを使用してrsa-sha256xml署名を行っています。しかし、問題は、sha256をサポートするようにCSPを変更する必要があることです。

これが私が証明書を選択する方法です、

これが私がCSPパラメータを変更しようとしている方法です。

問題は、USBデバイストークンを使用していて、秘密鍵がエクスポートできないことを疑っています。エラーのスローをエクスポートすると、'キーは指定された状態での使用には無効です。'。

誰かがこれを行う方法を助けることができますか?

0 投票する
3 に答える
12277 参照

c# - RSA-SHA256 署名方式の問題を使用して Xml ドキュメントに署名する

以下の方法を使用して Xml ドキュメントに署名しています。

System.Security.Cryptography.CryptographicException 型の例外が、エラー メッセージInvalid algorithm specifiedで署名を計算しようとするとスローされます。何か案は?

マシン: Windows Server 2008 R2

.Net フレームワーク: 4.0。

IDE: ビジュアル スタジオ 2010。

0 投票する
1 に答える
672 参照

x509certificate - Web アプリケーションのスマートカードに含まれる秘密鍵を使用して XML に署名する方法は?

Web アプリケーションの USB トークン (スマートカードなど) に含まれる、エクスポートできない秘密鍵 (これを使用してハッシュを作成するためのユーザー入力によってパスフレーズ/秘密パスワードを通知する必要があります) を使用して XML に署名するソリューションを探していました。これを作成するためにac#クラスライブラリを作成しましたが、明らかにコードはサーバー側で実行されるため、サーバーPCに接続されていない限り、インターネット経由でクライアントのusbtoken /スマートカードにアクセスできません(私の解決策は顧客のローカル ネットワークにインストールされ、usbtoken がサーバーの USB に差し込まれています。今日はそのように動作していますが、顧客が自分のマシンでそのトークンを使用するためにこれを変更したいと思います)

これを実現するために、SignedXml、X509Certificates、およびその他のクラスを使用してコードを作成しましたが、これらすべてをカプセル化してクライアント側で実行するために、Silverlight クラス ライブラリで同等のものを探していましたが、残念ながら SignedXml は Silverlight では使用できません (存在しません..)。

これを正常に行うために ActiveX を作成しましたが、私のソリューションは Internet Explorer/Windows でのみ機能するようになりました。また、ビジネス ロジックが原因で保守が容易ではありません。

誰でもこれで私を助けてくれますか?どんな提案でも大歓迎です。

ActiveX ソリューションを Silverlight に移植できる場合、または他のブラウザー/OS で実行できる他の MS テクノロジを使用して移植できる場合。

ネイティブスピーカーではなく、下手な英語で申し訳ありません。ありがとうございました。

0 投票する
1 に答える
1627 参照

c# - ドキュメントの一部の Xml 署名の検証が C# .NET で失敗する

ルート ノードが RSA+SHA2 署名で署名されている XML ドキュメントがあり、これには RSA+SHA2 で個別に署名された XML 要素が含まれています。

  • ルート ノードの署名が無効です
  • 子ノードの個別の署名が無効です

署名された子ノードを新しい XML ファイルにコピーし、名前空間のスコープを維持するために xmlns: 宣言もそのノードに移動すると、

  • 署名は有効です

XML 構造は次のようなものです。実際の XML は、署名付き SAML2 アサーションを含む署名付き SAML2 ArtifactResolve 要素です。

これらすべてを検証するために使用されるコードは、SignedXml クラスという非常に単純なものです。

ここでの主な問題は、ノードを新しい XML ファイルにコピーすることでノードを検証できるという奇妙な動作です。XPath を介してそのノードにクエリを実行し、それを SignedXml にロードすると失敗します。

ここで、SignedXml に失敗できる設定が大量にあるとしますが、それほど多くはありません。Xml を読み込み、署名を読み込み、検証します。

なぜこの振る舞いがそのままなのか、手がかりを持っている人はいますか? XmlDocument で PreserveWhitespace=true を使用しようとしましたが、それは役に立ちませんでした。

とても有難い!

ウーター

0 投票する
8 に答える
9930 参照

c# - SignedXml.CheckSignatureは.NET4では失敗しますが、.NET 3.5、3、または2では機能します

サードパーティのWebサービスから応答があります。その応答でXmlDocumentをロードします。

次に、証明書を使用して応答が署名されていることを確認します。私はmsdnVerifyXmlDoc(XmlDocument xmlDoc)で見つけたメソッドを持っています。

私はメッセージが正しいことを知っています。

プロジェクトのターゲットフレームワークを.NET3.5または.NET3、あるいは.NET 2に設定すると、うまく機能します。結果は真です。しかし、ターゲットフレームワークを.NET 4に変更すると、結果はfalseになります。(そして私は.NET 4を使用する必要があります)

この問題を解決する方法について何かアイデアはありますか?

0 投票する
2 に答える
1270 参照

php - PHPを使用したWindows8の購入(領収書)の確認

PHPを使用してサーバー側でWindows8アプリケーションで行われたアプリ内購入を確認する必要があります。MSDNのドキュメントページには、C#でのみ例があります。今、私はPHPでそれを行う方法を探して一日を過ごしました。失敗。インターネット全体で、このトピックに関する.NETの例のみがあります。

署名されたXMLとx509、いくつかのライブラリに関するいくつかの部分的な情報を見つけました(xmlseclibs-役に立たない、sha256をサポートしないopenssl_*関数を使用します;phpseclib-有望に見えますが、それらのドキュメントと例は助けがなく貧弱です)。

署名されたXML、RSA、x509についてすべてを学ぶことなく、どういうわけかそれを行うことは可能ですか?今、私はほとんどすべてを読みましたが、どこでもエンコーディングに関する情報だけです。検証については何もありません。

0 投票する
1 に答える
9312 参照

c# - .Net:SignedXml-変換アルゴリズムexc-c14nを使用したXMLへの署名

SignedXmlクラスを使用してC#でXml(実際にはSOAP xml)に署名しようとしていますが、署名段階は正常に通過しますが、署名を検証しようとすると、無効であると表示されます。トランスフォームXmlDsigEnvelopedSignatureTransformの代わりにXmlDsigExcC14NTransformを使用した、MSDNの例から行った唯一の変更。XmlDsigEnvelopedSignatureTransformを使用すると、有効な署名が取得されます。

これが私の署名コードです:

上記のコードは私に有効な署名を与えますが、私が使用する場合

それ以外の

無効な署名を取得します。

これが私の確認コードです:

の変換アルゴリズムで署名する方法を教えてもらえますかhttp://www.w3.org/2001/10/xml-exc-c14n#

前もって感謝します。

0 投票する
0 に答える
901 参照

c#-4.0 - SignedXml.CheckSignature(key)は常にエラーをスローします

私はC#.NETプログラミングに不慣れです。オンライン参照の助けを借りて、SAMLアサーション(サーバーAPIによって生成された)の署名を検証するために以下のコードを記述しました。

My Env:
VS 2010 Ver4.0 Win XP SP3

SAMLアサーショントークンは次のようになります:*


署名を検証するための私のコードスニペット:


コードを実行すると、「指定された署名アルゴリズムのSignatureDescriptionを作成できませんでした」というエラーがスローされます。オンライン:boolverified = sig.CheckSignature(rsaKey);

デバッグ時に、SignatureはSigElmに正しく割り当てられます。注:「X509Certificate.cer」から取得した証明書は、署名の要素(SAMLアサーション)に表示されているものとまったく同じです。したがって、有効で一致する証明書のように見えます。SAMLアサーショントークンの証明書は秘密鍵で署名されています。そのため、「X509Certificate.cer」(エンドユーザーが利用できる証明書)の公開鍵を使用して、(SAMLアサーションで)署名を検証しています。

また、次を使用して署名を検証しようとしました。bool verifyed = sig.CheckSignature(X509Cert、true); ただし、同じエラーがスローされます。

私はいくつかのアプローチを試しましたが(このエラーのオンライン参照を使用して)、問題を理解できませんでした。

助言願います...

0 投票する
1 に答える
1253 参照

mono - ポータブル クラス ライブラリの System.Security.Cryptography.Xml?

署名付き XML ファイルをライセンスとして使用するライセンス ツール (Rhino.Licensing) を使用しています。

System.Security.Cryptography.Xml名前空間はさまざまなプラットフォーム (MonoTouch や Mono for Android など) では利用できないため、ライセンスとその署名を検証することはできません。

ポータブル クラス ライブラリ プラットフォームで署名付き XML ファイルを読み取って検証する方法はありますか?

現在、.NET、Mono、MonoTouch、Mono for Android、WinRT、Silverlight、MonoGame でこの機能が必要です