PKI/ASN.1

ASN.1 Value Notation (2/2)

JayKim๐Ÿ™‚ 2022. 11. 3. 14:07


* Tagged Type
 - tagged type์€ value notation์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ ( ์ง์  ๊ฐ’๋งŒ ์ง€์ •ํ•˜๊ณ  ๊ฐ’๋‚ด์— value notation์„ ๋ชป์“ด๋‹ค ์ธ๊ฐ€? )
 - tag๋Š” value notation์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Œ
 
Present ::= [21] BOOLEAN
    status Present ::= TRUE
IDNumber ::= [PRIVATE 1] IMPLICIT INTEGER
    unassigned IDNumber ::= 9999
Color ::= [13] BIT STRING {red(0), blue(1), yellow(2)}
    defaultColor Color ::= {red, yellow}

* SEQUENCE / SEQUENCE OF
 - ์ˆœ์„œ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ๋‚˜์—ด / ๋™์ผํ•œ type์˜ ์ˆœ์„œ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ๋‚˜์—ด
Record ::= SEQUENCE {
    name     OCTET STRING,
    location  INTEGER {homeOffice(0),fieldOffice(1),roving(2)},
    age        INTEGER OPTIONAL

}

a Record ::= {name '62696720'H, location roving, age 26 } 
b Record ::= {name '62696720'H, location roving}

DailyTemperatures ::= SEQUENCE OF INTEGER
     weeklyHighs DailyTemperatures ::= { 10, 12, -2, 8 }

* SET / SET OF
 - ์ˆœ์„œ ์—†๋Š” ๊ฐ’๋“ค์˜ ๋‚˜์—ด / ๋™์ผํ•œ type์˜ ์ˆœ์„œ ์—†๋Š” ๊ฐ’๋“ค์˜ ๋‚˜์—ด

Record ::= [0] IMPLICIT SET {
                 name    [0] IMPLICIT OCTET STRING,
                 location [1] IMPLICIT INTEGER {homeOffice(0),fieldOffice(1),roving(2)} OPTIONAL,
                 age       [2] IMPLICIT INTEGER OPTIONAL}

 a Record ::= { location roving, age 26, name '62696720'H}
b Record ::= { name '62696720'H, age 29}
PersonnelRecord ::= SET OF Record

* CHOICE
 - ์—ฌ๋Ÿฌ ๊ฐœ ์ค‘ ํ•˜๋‚˜์˜ type์„ ์„ ํƒ
MessageType ::= CHOICE {text OCTET STRING, num INTEGER}
    initialize MessageType ::= text : ‘0000000000000000’B
    panic MessageType ::= num : 13

Division ::= CHOICE {
         manufacturing [0] IMPLICIT SEQUENCE { 
plantID INTEGER,
majorProduct OCTET STRING },

r-and-d [1] IMPLICIT SEQUENCE { 
labID INTEGER, 
currentProject OCTET STRING }}
    
currentAssignment Division ::= r-and-d : { labID 48, currentProject ‘44582D37’H}

* Character String Values
targetSales  NumericString ::= “1000000”
topAuthor  PrintableString ::= “Robert B. Parker”
capLetters  GraphicString ::= “ABCDLMYZ”
mixedChars GeneralString ::= “ABC๏“๏„”

 - - ASN.1 : 1994 extensions
alphaControl IA5String ::= {“ABCD”, cr, “EFGH”}
     cr IA5String ::= {0,13}
betaNewline IA5String ::= “ABCD
EFGH”      - - IA5String์€ ๊ฐœํ–‰๋ฌธ์ž ์ฒ˜๋ฆฌ
     bitString BIT STRING ::= ‘01001011                   
                            10110011’B     - - BIT STRING, OCTET STRIG์€
     doubleHex OCTET STRING ::= ’01FE   - - ๊ฐœํ–‰๋ฌธ์ž๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ์ฒ˜๋ฆฌ
         748A’H

* ObjectIdentifier Values
ftam1 OBJECT IDENTIFIER ::= { iso(1) standard(0) 8571 abstract-
                                                         syntax(2) ftam-pci(1) }
ftam1 OBJECT IDENTIFIER ::= { 1 0 8571 2 1 }
ftamRoot OBJECT IDENTIFIER ::= { 1 0 8571 }
ftam1 OBJECT IDENTIFIER ::= { ftamRoot abstract-syntax(2) 
                                                         ftam-pci(1) }

* Object Descriptor Values
ftamPDUs ObjectDescriptor ::= “FTMA PCI”
recordFormats1 ObjectDescriptor :: “Accounting”


* Time Values
 - Generalized Time
YYYYMMDDHHMMSS
fileCreated GeneralizedTime ::= “19960415203000.0”
msgSent GeneralizedTime ::= “19960415203000.0-0600”
                                       - - ‘-’๋Š” ์‹œ๊ฐ„์ด GMT๋ณด๋‹ค ๋น ๋ฆ„์„ ์˜๋ฏธ

 - UTCTime
YYYYMMDDHHMMSSZ         - - Z ๋Š” ์‹œ๊ฐ„์ด GMT๋ฅผ ์˜๋ฏธ
fileModified UTCTime ::= “9604152030Z”
msgDelivered UTCTime ::= “9604152030-0600”
 
* ANY
 - ์–ด๋– ํ•œ type ์œผ๋กœ๋„ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ๋„๋ก 1984์— ๋„์ž…

๋ฐ˜์‘ํ˜•

'PKI > ASN.1' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ASN.1 ์ฐธ๊ณ  ์‚ฌ์ดํŠธ  (0) 2022.11.03
ASN.1 Advanced  (0) 2022.11.03
ASN.1 Value Notation (1/2)  (0) 2022.11.03
ASN.1 Constraints  (0) 2022.11.03
ASN.1 Type Notation (3/3)  (0) 2022.11.03