370.5.3. Enveloping XML 서명 케이스의 출력 노드 제거
검증 후 노드가 출력 메시지 본문으로 마지막으로 반환되는 XML 서명 문서에서 추출됩니다. enveloping XML 서명 사례에서, XmlSignature2Message 의 기본 구현 DefaultXmlSignature2Message 는 다음과 같은 방식으로 노드 검색 유형 Default 에 대해 이 작업을 수행합니다(옵션 xmlSignature2Message참조).
먼저 오브젝트 참조가 결정됩니다.
-
동일한 문서 참조만 고려됩니다(URI는
#로 시작해야 함) - 또한 매니페스트를 통해 개체에 대한 간접 동일한 문서 참조도 고려합니다.
- 생성된 오브젝트 참조 수는 1이어야 합니다.
-
동일한 문서 참조만 고려됩니다(URI는
- 그런 다음 개체는 역참조되며 개체에는 하나의 XML 요소만 포함되어야 합니다. 이 요소는 출력 노드로 반환됩니다.
즉, enveloping XML 서명은 구조체 중 하나를 가져야 합니다.
<Signature>
<SignedInfo>
<Reference URI="#object"/>
<!-- further references possible but they must not point to an Object or Manifest containing an object reference -->
...
</SignedInfo>
<Object Id="object">
<!-- contains one XML element which is extracted to the message body -->
<Object>
<!-- further object elements possible which are not referenced-->
...
(<KeyInfo>)?
</Signature>
또는 구조:
<Signature>
<SignedInfo>
<Reference URI="#manifest"/>
<!-- further references are possible but they must not point to an Object or other manifest containing an object reference -->
...
</SignedInfo>
<Object >
<Manifest Id="manifest">
<Reference URI=#object/>
</Manifest>
</Objet>
<Object Id="object">
<!-- contains the DOM node which is extracted to the message body -->
</Object>
<!-- further object elements possible which are not referenced -->
...
(<KeyInfo>)?
</Signature>