2023年5月28日日曜日

PowerShellでプチプログラミング

こんにちは、やっまむーです。

仕事での出来事ですが、常駐先の現場ではセキュリティの関係でPCにソフトを勝手にインストールする事は禁止されています。
当然、業務で使わないのであればVisualStudio等もインストールできず、専用のマシンを別途使わなければなりません。

そんな中、内製の暗号化ライブラリで共通鍵が期待値と異なる問題が発生しました。
ソースコードはあれど、デバッグをする事は出来ません。
何故期待値と異なるのか、暗号化クラスの使い方に問題はないかと調べる際に、実際に動作させられないことが非常に不便でした。

そんな時、PowerShellを使って簡単にですが暗号化クラスの動作確認ができたのでその方法を紹介します。

PowerShellでクラスを生成する

問題があるとされていたのは、ECDiffieHellmanCng クラスでした。
このクラスのオブジェクトをPowerShell上で生成します。(上記ページの例を参考)

このようにPowerShell上で任意のクラスのオブジェクトを生成することができます。
また、PublicKeyの取得もできます。

同様の手順でBobのPublicKeyを生成してCngKeyオブジェクトの生成まで行います。

作成されたCngKeyを使い、鍵の生成を行います。

このような手順で、ソースコードの内容をPowerShell上で再現して鍵計算の間違いを調べることができました。

複雑なコードを再現することは難しいですが、簡単な確認程度であればPowerShellでも十分に可能です。
もし、同じようにデバッグ環境が用意できない場合があれば、一度試してみてはいかがでしょうか。

ではではー。

0 件のコメント:

コメントを投稿