Q1: 通常のJSON serializationだけではshared signature inputとして不十分な理由はどれ?単一選択 A. whitespace, property order, escape, number表記が異なりうる B. JSONにはstringやnumber data typeがない C. 全JSON parserが自動的にsignatureをverifyする **解説:** A: 同じparsed dataでもこれらのlegal variationで異なるbyte列になりうる. B: RFC 8259はstringとnumberを定義する. C: parsingとcryptographic verificationは別のoperationである.
Q2: JCS implementationがcanonicalization前にrejectすべきinputはどれ?単一選択 A. propertyがreverse alphabetical orderで到着したobject B. duplicate property nameを含むobject C. objectを含むarray **解説:** A: canonicalizationがpropertyをsortするためinput orderはcanonicalでなくてよい. B: JCS input objectはduplicate property nameを含んではならない. C: arrayはobjectを含められそのobjectはrecursiveに処理される.
Q3: JCS outputではJSON token間のwhitespaceをどうする?単一選択 A. 1つのASCII spaceへnormalizeする B. source textからexactにcopyする C. emitしない **解説:** A: JCSはseparator spaceをemitしない. B: JCSはparsed dataを処理しsource formattingを保持しない. C: RFC 8785はJSON token間にwhitespaceをemitしないよう要求する.
Q4: JCSはJSON object propertyをどうorderする?単一選択 A. raw property nameをUTF-16 code unitで表しrecursiveにsortする B. escaped source textをlocale-aware alphabetical orderでsortする C. senderがpropertyをinsertしたorder **解説:** A: JCSはunsigned UTF-16 code-unit比較を使い全child objectをsortする. B: locale collationとescape表記ではspecifiedな共通orderにならない. C: insertion orderはJCS sorting ruleで置き換える.
Q5: JCSはarray element orderをどう扱う?単一選択 A. 全elementをserialized byteでsortする B. element orderを保持しnested objectをcanonicalizeする C. arrayはdeterministicでないためrejectする **解説:** A: element orderの変更はJSON data modelを変える. B: arrayはrecursiveにscanされるがelement positionは変更しない. C: JCSはfixed element orderを持つarrayをsupportする.
Q6: JCS implementationはsigning前にstringへUnicode normalizationを適用してよい?単一選択 A. はい, 全stringにNFCがmandatory B. はい, 2 stringがvisualに同じならよい C. いいえ, parsed Unicode string dataをas-isで保持する **解説:** A: RFC 8785は意図的にUnicode normalizationを適用しない. B: visual similarityはparsed string dataを変更するruleではない. C: string dataの変更はcanonicalize対象valueを変えsignatureを壊しうる.
Q7: JCSはJSON numberをどうserializeする?単一選択 A. specifiedなECMAScript double-precision number serializationを使う B. 受信した全digitとexponentをexactに保持する C. 全numberをquoted decimal stringへ変換する **解説:** A: JCSはECMAScript serialization algorithmでnumber表記を固定する. B: JCSはparsed numeric valueをcanonicalizeしsource表記を保持しない. C: applicationはlarge numberをstringでmodelできるがJCSはJSON typeを勝手に変えない.
Q8: parsed valueにlone surrogateまたはInfinityがある. compliant JCS implementationはどうする?単一選択 A. valueをreplaceしてsilentに続行する B. appropriateなerrorでterminateする C. 両valueをnullとしてserializeする **解説:** A: silent replacementはdataを変更しsignature behaviorを曖昧にする. B: RFC 8785はinvalid Unicodeとnon-JSON numeric valueでerrorを要求する. C: JCSはnullへのlossy conversionを定義しない.
Q9: 2つのimplementationが同じJCS byteを生成した. 何を結論できる?単一選択 A. JSON claimは全recipientにauthorizedである B. 全stringが全languageでsemantically equivalentである C. 同じconstrained JSON dataのcanonical representationに合意した **解説:** A: canonicalizationはauthorizationをgrantしない. B: JCSはcode pointを保持しnatural-languageの意味を解釈しない. C: JCSはdeterministic byteを提供するがclaim meaningとtrustはapplicationへ委ねる.
Q10: signed Agent Cardでapplication profileがなお定義すべきboundaryはどれ?単一選択 A. card表示に使うcolorだけ B. field presence, signed-object construction, verification policy C. canonical byteによりkey validationが不要になるrule **解説:** A: display stylingはcryptographic coverageを決めない. B: 全partyが同じlogical objectを構築しJCS周辺で同じacceptance ruleを適用する必要がある. C: deterministic byteはsigning keyをauthenticateしない.