Click here to Skip to main content
Click here to Skip to main content

ASN.1 Editor

, 30 Jun 2008
Rate this:
Please Sign up or sign in to vote.
An editor to view, analyse and modify ASN.1 DER encoded data
ASN.1 Editor Main Screen


Abstract Syntax Notation One (ASN.1) Distinguished Encoding Rule (DER) encoded data is widely used in digital security protocols (i.e. X509 digital certificate). The encoded data is not readable by regular text editors. The Asn1Processor Library is designed to parse and modify ASN.1 DER encoded data. The ASN.1 Editor is a sample project that uses the Asn1Processor library to view and to edit DER encoded data. The Asn1Processor Library source code and reference documentation (Asn1EditorLib.chm) are also included in the downloadable source code zip file.

The ASN.1 Editor doesn't do any schema checking. The user needs to make sure the edited data conforms to certain constrains (i.e. OCSP request or Key Info structure).

Main Features

1. Dump Text Format Data

You can view the selected node branch text dump by right-clicking the designated node and selecting "View Node Text". View Node Text

2. Atomically Parse “Encapsulates” Data

OCTET and BITSTRING may encapsulate ASN.1 DER encoded data, for example:

Encapsulate Parse Sample

The ASN.1 Editor can automatically parse the data structure.

3. Hex Data Viewer

Click "View->Hex Viewer" and you can view the binary data structure.

Hex Viewer

4. Extensible OID Table

OID.txt file is installed in the same directory as Asn1Editor.EXE.

Here are the sample records:

0.9.2342.19200300.100.1.25, domainComponent, Signet pilot, Signet intraNet, Signet personal, Signet securityPolicy

The OID and the description are comma separated. It can be extended in order to add in additional OIDs.

5. Change Node Content

Double click the selected node and you can see the "Node Content Editor".

Node Content Editor

6. Save Selected Node Data into Another File

You can save the designated node data into a file by right-clicking the node and selecting "Save selected node as...".

7. Copy Selected Node Data into Clipboard

Right-click the node and select "Copy".

8. Paste Node Data from Clipboard

Right-click the insertion point node and select "Paste as last child node", "Paste before current node", or "Paste after current node" to perform the insert operation.

9. Binary/Hex/Base64 Data Converter

Convert the data format between Hex, Base64, and PEM using the "Data Converter".

Data Converter


  • 3rd September, 2003: Initial post
  • 29th June, 2008: Updated source code and installer
    The changes are mainly for bug fixing, Visual Studio 2005, and Vista support.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Liping Dai
Software Developer (Senior)
United States United States
Liping Dai has worked in IT industry more than 17 years. He moved to Canada in 1996. After worked in Toronto for 4 years, he relocated to Silicon Valley. He has strong passion in the area of Multi-core/Multi thread programming, Parallel Computing, Image Reorganization, Secure Communication, and Mobile Device development.

Comments and Discussions

GeneralOpening X509 signed files. Pinmembersillypuppy23-Jan-05 22:41 
GeneralRe: Opening X509 signed files. PinmemberLiping Dai24-Jan-05 19:10 
GeneralRe: Opening X509 signed files. Pinmembersillypuppy24-Jan-05 23:48 
GeneralFantastic tool. Pinmembersillypuppy22-Jan-05 5:48 
GeneralRe: Fantastic tool. PinmemberLiping Dai22-Jan-05 7:15 
GeneralRe: Fantastic tool. Pinmembersillypuppy23-Jan-05 1:33 
GeneralRe: Fantastic tool. PinmemberLiping Dai23-Jan-05 8:15 
GeneralRe: Fantastic tool. Pinmembersillypuppy23-Jan-05 22:16 
Hi again.
It still is confusing me. D'Oh! | :doh:
Liping Dai wrote:
Since the application can always compute the hash from the raw data, there is no need to save it in the signed data structure, but you need to know exactly how the data is signed.
If the hash is not stored in the signed data structure, how can I verify the integrity of the file?
Liping Dai wrote:
The hash is not computed out of the entire certificate. It is computed by the content of the first sequence structure. You can right click the sequence node, save it into a file, and compute the hash from the file
What is the name of the sequence node? Does it contain just raw data from which I can compute hash?
Liping Dai wrote:
The protocol could vary depending on the application needs. So, you may want to consult with your application provider to get the detail information.
My application will only recognize a certain type of signed files - namely Authenticode signed files. So I know that they will be signed with X509 certificate. And then I can check what are encryption and message digest algorithms.
With Best Regards,
GeneralGreat Stuff and Thanks for your generousness Pinmemberyianfang24-May-04 8:55 
GeneralRe: Great Stuff and Thanks for your generousness PinmemberLiping Dai27-May-04 22:16 
GeneralI got it PinmemberCS_Sniper28-Dec-03 18:48 
GeneralThanks PinmemberLiping Dai4-Sep-03 1:44 
GeneralWhy such a low rating PinmemberNormski3-Sep-03 21:01 
GeneralRe: Why such a low rating Pinmembersfeldi4-Sep-03 4:13 
GeneralRe: Why such a low rating PinmemberNormski5-Sep-03 23:08 
GeneralRe: Why such a low rating PinmemberLiping Dai6-Sep-03 8:32 
Generalimages PinmemberRoger J3-Sep-03 2:46 
GeneralRe: images Pinmembersfeldi3-Sep-03 4:40 
GeneralRe: images PinmemberLiping Dai3-Sep-03 4:49 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140827.1 | Last Updated 30 Jun 2008
Article Copyright 2003 by Liping Dai
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid