- 
                Notifications
    
You must be signed in to change notification settings  - Fork 168
 
Open
Description
I have a pretty well-written #[cfg(feature = "clarify")] - gated writer that pretty-prints DER.
Proposal: To add Encode::to_hex_clarify, that annotates tags and types.
Example of PKCS#15:
30 3E <!-- tag: SEQUENCE len: 62 type: AuthenticationObjectChoice -->
	<!-- CHOICE: Pwd -->
	<!-- field: common_object_attributes -->
	30 1B <!-- tag: SEQUENCE len: 27 type: CommonObjectAttributes -->
		<!-- field: label -->
		0C 12 <!-- tag: UTF8String len: 18 type: String -->
			41 75 74 68 65 6E 74 69 63 61 74 69 6F 6E 20 50 
			49 4E <!--  "Authentication PIN" -->
		<!-- end: String -->
		<!-- field: flags -->
		03 02 <!-- tag: BIT STRING type: CommonObjectFlags -->
			06 
			C0 
		<!-- field: auth_id -->
		04 01 <!-- tag: OCTET STRING type: OctetString -->
			05 
		<!-- field: user_consent -->
		<!-- field: access_control_rules -->
		<!-- field: current_lcs -->
	<!-- end: CommonObjectAttributes -->
	<!-- field: class_attributes -->
	30 03 <!-- tag: SEQUENCE type: CommonAuthenticationObjectAttributes -->
		<!-- field: auth_id -->
		04 01 <!-- tag: OCTET STRING type: OctetString -->
			01 
		<!-- field: auth_reference -->
		<!-- field: se_identifier -->
	<!-- field: subclass_attributes -->
	<!-- field: type_attributes -->
	A1 1A <!-- tag: CONTEXT-SPECIFIC [1] (constructed) len: 26 
                          type: ContextSpecificExplicit<PasswordAttributes> -->
		30 18 <!-- tag: SEQUENCE len: 24 type: PasswordAttributes -->
			<!-- field: pwd_flags -->
			03 03 <!-- tag: BIT STRING type: PasswordFlags -->
				04 
				48 10 
			<!-- field: pwd_type -->
			0A 01 <!-- tag: ENUMERATED type: PasswordType -->
				01 
			<!-- field: min_length -->
			02 01 <!-- tag: INTEGER type: IntegerInRange -->
				04 
			<!-- field: stored_length -->
			02 01 <!-- tag: INTEGER type: IntegerInRange -->
				04 
			<!-- field: max_length -->
			02 01 <!-- tag: INTEGER type: IntegerInRange -->
				04 
			<!-- field: pwd_reference -->
			80 01 <!-- tag: CONTEXT-SPECIFIC [0] (primitive) type: Reference -->
				01 
			<!-- field: pad_char -->
			<!-- field: last_password_change -->
			<!-- field: path -->
			30 02 <!-- tag: SEQUENCE type: Path -->
				<!-- field: efid_or_tag_choice -->
				04 00 <!-- tag: OCTET STRING type: EfidOrTagChoice -->
					<!-- CHOICE: EfidOrPath -->
					
				<!-- field: index -->
				<!-- field: length -->
			<!-- field: verif_data_history_length -->
			<!-- field: cio_security_id -->
		<!-- end: ContextSpecificExplicit<PasswordAttributes> -->
	<!-- end: PasswordAttributes -->
<!-- end: AuthenticationObjectChoice -->Metadata
Metadata
Assignees
Labels
No labels