mirror of
https://github.com/gchq/CyberChef.git
synced 2025-05-14 01:56:54 -04:00
Working operation to parse certificate bundles
This commit is contained in:
parent
f7b97dcb41
commit
6940469e50
6 changed files with 317 additions and 93 deletions
6
.idea/inspectionProfiles/Project_Default.xml
generated
6
.idea/inspectionProfiles/Project_Default.xml
generated
|
@ -1,6 +0,0 @@
|
||||||
<component name="InspectionProjectProfileManager">
|
|
||||||
<profile version="1.0">
|
|
||||||
<option name="myName" value="Project Default" />
|
|
||||||
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
</profile>
|
|
||||||
</component>
|
|
235
.idea/workspace.xml
generated
235
.idea/workspace.xml
generated
|
@ -2,9 +2,11 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="be3b9f74-a124-47bf-9f48-a21e4aa8061c" name="Default Changelist" comment="">
|
<list default="true" id="be3b9f74-a124-47bf-9f48-a21e4aa8061c" name="Default Changelist" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/core/config/Categories.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/core/config/Categories.json" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/core/lib/PublicKey.mjs" beforeDir="false" afterPath="$PROJECT_DIR$/src/core/lib/PublicKey.mjs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs" beforeDir="false" afterPath="$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
@ -20,8 +22,8 @@
|
||||||
<file pinned="false" current-in-tab="true">
|
<file pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs">
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="1665">
|
<state relative-caret-position="967">
|
||||||
<caret line="111" column="26" selection-start-line="111" selection-start-column="26" selection-end-line="111" selection-end-column="26" />
|
<caret line="94" column="95" selection-start-line="94" selection-start-column="95" selection-end-line="94" selection-end-column="95" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#115#156#0" expanded="true" />
|
<element signature="e#115#156#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
@ -29,6 +31,57 @@
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/Dish.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1035">
|
||||||
|
<caret line="82" column="22" selection-start-line="82" selection-start-column="18" selection-end-line="82" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509Certificate.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="629">
|
||||||
|
<caret line="171" column="95" selection-start-line="171" selection-start-column="12" selection-end-line="171" selection-end-column="95" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#108#134#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseUDP.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseSSHHostKey.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseQRCode.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseIPv6Address.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseIPv4Header.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseColourCode.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
</leaf>
|
</leaf>
|
||||||
</component>
|
</component>
|
||||||
<component name="FileTemplateManagerImpl">
|
<component name="FileTemplateManagerImpl">
|
||||||
|
@ -48,8 +101,8 @@
|
||||||
<option value="$PROJECT_DIR$/src/core/operations/ParseX509Certificate.mjs" />
|
<option value="$PROJECT_DIR$/src/core/operations/ParseX509Certificate.mjs" />
|
||||||
<option value="$PROJECT_DIR$/src/core/lib/PublicKey.mjs" />
|
<option value="$PROJECT_DIR$/src/core/lib/PublicKey.mjs" />
|
||||||
<option value="$PROJECT_DIR$/src/web/index.js" />
|
<option value="$PROJECT_DIR$/src/web/index.js" />
|
||||||
<option value="$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs" />
|
|
||||||
<option value="$PROJECT_DIR$/src/core/config/Categories.json" />
|
<option value="$PROJECT_DIR$/src/core/config/Categories.json" />
|
||||||
|
<option value="$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
@ -66,18 +119,17 @@
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectFrameBounds" extendedState="6" fullScreen="true">
|
<component name="ProjectFrameBounds" fullScreen="true">
|
||||||
<option name="x" value="1440" />
|
<option name="x" value="-245" />
|
||||||
<option name="y" value="-674" />
|
<option name="y" value="-1200" />
|
||||||
<option name="width" value="1920" />
|
<option name="width" value="1920" />
|
||||||
<option name="height" value="1080" />
|
<option name="height" value="1200" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectView">
|
<component name="ProjectView">
|
||||||
<navigator proportions="" version="1">
|
<navigator proportions="" version="1">
|
||||||
<foldersAlwaysOnTop value="true" />
|
<foldersAlwaysOnTop value="true" />
|
||||||
</navigator>
|
</navigator>
|
||||||
<panes>
|
<panes>
|
||||||
<pane id="PackagesPane" />
|
|
||||||
<pane id="ProjectPane">
|
<pane id="ProjectPane">
|
||||||
<subPane>
|
<subPane>
|
||||||
<expand>
|
<expand>
|
||||||
|
@ -85,15 +137,35 @@
|
||||||
<item name="CyberChef" type="b2602c69:ProjectViewProjectNode" />
|
<item name="CyberChef" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="CyberChef" type="462c0819:PsiDirectoryNode" />
|
<item name="CyberChef" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="CyberChef" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="CyberChef" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="CyberChef" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="CyberChef" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="core" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="CyberChef" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="CyberChef" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="core" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="operations" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
</expand>
|
</expand>
|
||||||
<select />
|
<select />
|
||||||
</subPane>
|
</subPane>
|
||||||
</pane>
|
</pane>
|
||||||
|
<pane id="PackagesPane" />
|
||||||
<pane id="Scope" />
|
<pane id="Scope" />
|
||||||
</panes>
|
</panes>
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">
|
<component name="PropertiesComponent">
|
||||||
<property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
<property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||||
|
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
<property name="aspect.path.notification.shown" value="true" />
|
<property name="aspect.path.notification.shown" value="true" />
|
||||||
<property name="editor.config.ad.shown" value="true" />
|
<property name="editor.config.ad.shown" value="true" />
|
||||||
|
@ -102,8 +174,11 @@
|
||||||
<property name="go.vendoring.notification.had.been.shown" value="true" />
|
<property name="go.vendoring.notification.had.been.shown" value="true" />
|
||||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
<property name="node.js.detected.package.eslint" value="true" />
|
<property name="node.js.detected.package.eslint" value="true" />
|
||||||
|
<property name="node.js.detected.package.standard" value="true" />
|
||||||
<property name="node.js.path.for.package.eslint" value="project" />
|
<property name="node.js.path.for.package.eslint" value="project" />
|
||||||
|
<property name="node.js.path.for.package.standard" value="project" />
|
||||||
<property name="node.js.selected.package.eslint" value="(autodetect)" />
|
<property name="node.js.selected.package.eslint" value="(autodetect)" />
|
||||||
|
<property name="node.js.selected.package.standard" value="" />
|
||||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||||
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
||||||
</component>
|
</component>
|
||||||
|
@ -130,12 +205,17 @@
|
||||||
<option name="presentableId" value="Default" />
|
<option name="presentableId" value="Default" />
|
||||||
<updated>1577960280879</updated>
|
<updated>1577960280879</updated>
|
||||||
<workItem from="1577960284699" duration="8776000" />
|
<workItem from="1577960284699" duration="8776000" />
|
||||||
<workItem from="1577971683212" duration="618000" />
|
<workItem from="1577971683212" duration="3492000" />
|
||||||
|
<workItem from="1578221896323" duration="2240000" />
|
||||||
|
<workItem from="1578650640199" duration="321000" />
|
||||||
|
<workItem from="1578659764129" duration="593000" />
|
||||||
|
<workItem from="1578993508965" duration="10512000" />
|
||||||
|
<workItem from="1579618672801" duration="2515000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TimeTrackingManager">
|
<component name="TimeTrackingManager">
|
||||||
<option name="totallyTimeSpent" value="9394000" />
|
<option name="totallyTimeSpent" value="28449000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="TodoView">
|
<component name="TodoView">
|
||||||
<todo-panel id="selected-file">
|
<todo-panel id="selected-file">
|
||||||
|
@ -147,10 +227,10 @@
|
||||||
</todo-panel>
|
</todo-panel>
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="1440" y="-674" width="1920" height="1080" extended-state="0" />
|
<frame x="-245" y="-1200" width="1920" height="1200" extended-state="0" />
|
||||||
<editor active="true" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25239617" />
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.15069222" />
|
||||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||||
<window_info id="Image Layers" order="2" />
|
<window_info id="Image Layers" order="2" />
|
||||||
<window_info id="Designer" order="3" />
|
<window_info id="Designer" order="3" />
|
||||||
|
@ -185,33 +265,6 @@
|
||||||
<option name="version" value="1" />
|
<option name="version" value="1" />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/node_modules/jsrsasign/lib/jsrsasign-all-min.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="45">
|
|
||||||
<caret line="5" column="29" lean-forward="true" selection-start-line="5" selection-start-column="29" selection-end-line="5" selection-end-column="29" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/api.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/apiUtils.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/cjs.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/File.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/index.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-3889" />
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/NodeRecipe.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/node/NodeDish.mjs">
|
<entry file="file://$PROJECT_DIR$/src/node/NodeDish.mjs">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
|
@ -223,13 +276,6 @@
|
||||||
<state relative-caret-position="-4332" />
|
<state relative-caret-position="-4332" />
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/node_modules/jsrsasign/lib/jsrsasign.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="323">
|
|
||||||
<caret line="248" column="659" selection-start-line="248" selection-start-column="659" selection-end-line="248" selection-end-column="659" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.es5.d.ts">
|
<entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.es5.d.ts">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="323">
|
<state relative-caret-position="323">
|
||||||
|
@ -338,13 +384,6 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509Certificate.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-337">
|
|
||||||
<caret line="25" column="34" selection-start-line="25" selection-start-column="7" selection-end-line="25" selection-end-column="34" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/PHPDeserialize.mjs">
|
<entry file="file://$PROJECT_DIR$/src/core/operations/PHPDeserialize.mjs">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state>
|
<state>
|
||||||
|
@ -373,9 +412,6 @@
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/Zip.mjs">
|
<entry file="file://$PROJECT_DIR$/src/core/operations/Zip.mjs">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseQRCode.mjs">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/Whirlpool.mjs">
|
<entry file="file://$PROJECT_DIR$/src/core/operations/Whirlpool.mjs">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
|
@ -398,10 +434,89 @@
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/build/prod/modules/Code.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="15">
|
||||||
|
<caret line="82" column="6145" selection-start-line="82" selection-start-column="6145" selection-end-line="82" selection-end-column="6145" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/PEMToHex.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseUserAgent.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseURI.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/node_modules/jsrsasign/lib/jsrsasign-all-min.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="3615">
|
||||||
|
<caret line="243" column="5644" selection-start-line="243" selection-start-column="5644" selection-end-line="243" selection-end-column="5644" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/node_modules/jsrsasign/lib/jsrsasign.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="57">
|
||||||
|
<caret line="248" column="5644" selection-start-line="248" selection-start-column="5644" selection-end-line="248" selection-end-column="5644" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/package.json">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="342">
|
||||||
|
<caret line="69" column="23" selection-start-line="69" selection-start-column="23" selection-end-line="69" selection-end-column="23" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/Dish.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1035">
|
||||||
|
<caret line="82" column="22" selection-start-line="82" selection-start-column="18" selection-end-line="82" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseUDP.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseSSHHostKey.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseQRCode.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseIPv6Address.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseIPv4Header.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseColourCode.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/Operation.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="165">
|
||||||
|
<caret line="12" column="6" selection-start-line="12" selection-start-column="6" selection-end-line="12" selection-end-column="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509Certificate.mjs">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="629">
|
||||||
|
<caret line="171" column="95" selection-start-line="171" selection-start-column="12" selection-end-line="171" selection-end-column="95" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#108#134#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs">
|
<entry file="file://$PROJECT_DIR$/src/core/operations/ParseX509CertificateBundles.mjs">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="1665">
|
<state relative-caret-position="967">
|
||||||
<caret line="111" column="26" selection-start-line="111" selection-start-column="26" selection-end-line="111" selection-end-column="26" />
|
<caret line="94" column="95" selection-start-line="94" selection-start-column="95" selection-end-line="94" selection-end-column="95" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#115#156#0" expanded="true" />
|
<element signature="e#115#156#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
|
5
package-lock.json
generated
5
package-lock.json
generated
|
@ -11296,6 +11296,11 @@
|
||||||
"integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==",
|
"integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"openssl-nodejs": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/openssl-nodejs/-/openssl-nodejs-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-6+nxZBw96nK1WUk5yIjhv9NRjqtNTfklB508T64BG5TQ8fU1x1rJrc1I3iVW+31KjnYYYwInGTopYxFJa7wMqA=="
|
||||||
|
},
|
||||||
"opn": {
|
"opn": {
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
|
||||||
|
|
|
@ -137,6 +137,7 @@
|
||||||
"nodom": "^2.4.0",
|
"nodom": "^2.4.0",
|
||||||
"notepack.io": "^2.2.0",
|
"notepack.io": "^2.2.0",
|
||||||
"nwmatcher": "^1.4.4",
|
"nwmatcher": "^1.4.4",
|
||||||
|
"openssl-nodejs": "^1.0.5",
|
||||||
"otp": "^0.1.3",
|
"otp": "^0.1.3",
|
||||||
"popper.js": "^1.16.0",
|
"popper.js": "^1.16.0",
|
||||||
"qr-image": "^3.2.0",
|
"qr-image": "^3.2.0",
|
||||||
|
|
|
@ -6,9 +6,6 @@
|
||||||
|
|
||||||
import Operation from "../Operation.mjs";
|
import Operation from "../Operation.mjs";
|
||||||
import r from "jsrsasign";
|
import r from "jsrsasign";
|
||||||
import {toHex} from "../lib/Hex";
|
|
||||||
import {fromBase64} from "../lib/Base64";
|
|
||||||
import Utils from "../Utils";
|
|
||||||
import {formatDnStr} from "../lib/PublicKey";
|
import {formatDnStr} from "../lib/PublicKey";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,7 +29,7 @@ class ParseX509CertificateBundles extends Operation {
|
||||||
{
|
{
|
||||||
"name": "Input format",
|
"name": "Input format",
|
||||||
"type": "option",
|
"type": "option",
|
||||||
"value": ["PEM", "DER Hex", "Base64", "Raw"]
|
"value": ["PEM"]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
this.patterns = [
|
this.patterns = [
|
||||||
|
@ -51,32 +48,42 @@ class ParseX509CertificateBundles extends Operation {
|
||||||
* @param {Object[]} args
|
* @param {Object[]} args
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
run(input, args) {
|
run(input, args) {
|
||||||
|
|
||||||
if (!input.length) {
|
if (!input.length) {
|
||||||
return "No input";
|
return "No input";
|
||||||
}
|
}
|
||||||
|
|
||||||
const cert = new r.X509(),
|
const regex = /^-----BEGIN CERTIFICATE-----\r?\n((?:(?!-----).*\r?\n)*)-----END CERTIFICATE-----/gm;
|
||||||
inputFormat = args[0];
|
|
||||||
|
|
||||||
switch (inputFormat) {
|
let m;
|
||||||
case "DER Hex":
|
let res = "";
|
||||||
input = input.replace(/\s/g, "");
|
|
||||||
cert.readCertHex(input);
|
while ((m = regex.exec(input)) !== null) {
|
||||||
break;
|
// This is necessary to avoid infinite loops with zero-width matches
|
||||||
case "PEM":
|
if (m.index === regex.lastIndex) {
|
||||||
cert.readCertPEM(input);
|
regex.lastIndex++;
|
||||||
break;
|
}
|
||||||
case "Base64":
|
|
||||||
cert.readCertHex(toHex(fromBase64(input, null, "byteArray"), ""));
|
//console.log(m[1]);
|
||||||
break;
|
|
||||||
case "Raw":
|
res += "\nCertificate:\n" + parseCert("-----BEGIN CERTIFICATE-----" + "\n" + m[1] + "\n" + "-----END CERTIFICATE-----");
|
||||||
cert.readCertHex(toHex(Utils.strToByteArray(input), ""));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw "Undefined input format";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return "Parsed Certificates:\n" + res;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function parseCert(input) {
|
||||||
|
|
||||||
|
|
||||||
|
const cert = new r.X509();
|
||||||
|
cert.readCertPEM(input);
|
||||||
|
|
||||||
const issuer = cert.getIssuerString(),
|
const issuer = cert.getIssuerString(),
|
||||||
subject = cert.getSubjectString();
|
subject = cert.getSubjectString();
|
||||||
|
|
||||||
|
@ -85,8 +92,9 @@ class ParseX509CertificateBundles extends Operation {
|
||||||
// Extensions
|
// Extensions
|
||||||
try {
|
try {
|
||||||
// extensions =cert.getInfo();
|
// extensions =cert.getInfo();
|
||||||
extensions = cert.getInfo().split("basicConstraints :\n")[1].split("signature")[0];
|
extensions = cert.getInfo().split("X509v3 Extensions:\n")[1].split("signature")[0];
|
||||||
} catch (err) {}
|
} catch (err) {
|
||||||
|
}
|
||||||
|
|
||||||
const issuerStr = formatDnStr(issuer, 2),
|
const issuerStr = formatDnStr(issuer, 2),
|
||||||
nbDate = formatDate(cert.getNotBefore()),
|
nbDate = formatDate(cert.getNotBefore()),
|
||||||
|
@ -102,7 +110,6 @@ Subject
|
||||||
${subjectStr}
|
${subjectStr}
|
||||||
Extensions/basicConstraints
|
Extensions/basicConstraints
|
||||||
${extensions}`;
|
${extensions}`;
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +119,7 @@ ${extensions}`;
|
||||||
* @param {string} dateStr
|
* @param {string} dateStr
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
function formatDate (dateStr) {
|
function formatDate(dateStr) {
|
||||||
if (dateStr.length === 13) { // UTC Time
|
if (dateStr.length === 13) { // UTC Time
|
||||||
dateStr = (dateStr[0] < "5" ? "20" : "19") + dateStr;
|
dateStr = (dateStr[0] < "5" ? "20" : "19") + dateStr;
|
||||||
}
|
}
|
||||||
|
|
102
src/core/operations/sample.pem
Normal file
102
src/core/operations/sample.pem
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
LDZQCAjQitsk
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
pTrJkmvrx3hA
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
7hf7KmzprR1rsHU1FQYJydLBRA==
|
||||||
|
-----END CERTIFICATE-----
|
Loading…
Add table
Add a link
Reference in a new issue