問題タブ [asn1]
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.
swift - OpenSSL RSA 公開鍵ダイジェスト
iOS (Swift) と macOS (ターミナルと OpenSSL) の両方で公開キーのハッシュを計算しようとしていますが、どちらのプラットフォームもキーをわずかに異なる形式でエクスポートします。
私の Swift コードは、モジュラスと指数の両方を含むシーケンスを抽出します (Apple によると、これは PKCS#1 コンテナーです)。
端末で同様のことを行うと、別の出力が得られます。
後者は、OpenSSL が出力をより完全な構造の ASN.1 コンテナーにラップすることによって発生します。
OpenSSL を使用してキーを iOS が期待するシーケンスのみにエクスポートする方法を教えてください。
arrays - dumpasn1 出力から生の文字列を抽出する方法は?
私は Apple APNs p8 ファイルを所有しています。これは基本的に、公開鍵と秘密鍵を含む PKCS#8 ファイルです。
基本的に、このファイルから秘密鍵情報を抽出して、JWT に署名する必要があります。
免責事項: 以下の情報は、取り消された実際の鍵と一致します。
p8 ファイルから ASN1 ファイルを生成することから始めました。ツールを使用すると、次のdumpasn1
出力が得られます。
私が理解しているように、秘密鍵は、19 行目から 23 行目までの HEX 形式で記述されたバイト配列で表されます。
このバイト配列を生の文字列に変換したいと思います。
私見、良い出発点は、これらのバイトが由来する元のテキストのエンコーディングを決定することです...そしてそれが私が立ち往生している場所です。
目標を達成するために使用できるツールはありますか?
ありがとうございました
objective-c - uint8_t 配列への 10 進数
10 進数の614995508 (実際のシリアル番号) は、16 進数の 24A81634に変換されます。
上記の unit8 配列は、T が 0X02、L が 0X04、V が 16 進数の文字列であるシリアル番号の TLV (タグ長値) トリプレットでの表現です。
だから私は一度に2文字で16進数の文字列を分割することができます
上記のように、objective-c の unit8_t 配列で 16 進数を TLV トリプレット形式に変換する方法を教えてください。参照: https://docs.microsoft.com/en-us/windows/win32/seccertenroll/about-integer
openssl - BMPString エンコーディングで完全に証明書を生成することは可能ですか?
openssl コマンドを使用して証明書を作成している間、次のようなカスタム構成ファイルを使用しています。
このコマンドを使用して asn1parse を実行すると、次のようになります。
openssl asn1parse -in bmp.crt -i -strparse 200
CN、OrganizationName、LocalityName はすべて BMPString にありますが、OrganizationalUnitName にはありません。
すべての文字が OrganizationalUnitName の PrintableString の傘下にあるため、同じようにエンコードされているため、ロジックを理解しています。
しかし、BMPString で "PrintableString" 文字を自動的にエンコードしたいのですが、それは可能ですか?
編集 1:「除く」を「しかしない」に変更しました。
編集 2:「CN、E メール、OrganizationName、LocalityName はすべて BMPString にありますが、OrganizationalUnitName にはありません」から E メールを削除しました。