From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- dlls/cryptxml/cryptxml.c | 17 +++++++++++++++++ dlls/cryptxml/cryptxml.spec | 2 +- include/cryptxml.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/cryptxml/cryptxml.c b/dlls/cryptxml/cryptxml.c index a1b4b7f1df3..d052594ce27 100644 --- a/dlls/cryptxml/cryptxml.c +++ b/dlls/cryptxml/cryptxml.c @@ -148,3 +148,20 @@ HRESULT WINAPI CryptXmlGetDocContext( HCRYPTXML handle, const CRYPT_XML_DOC_CTXT *ctx = &doc->ctx; return S_OK; } + +HRESULT WINAPI CryptXmlGetSignature( HCRYPTXML handle, const CRYPT_XML_SIGNATURE **ret_sig ) +{ + struct signature *sig = (struct signature *)handle; + + TRACE( "handle %p, ret_sig %p\n", handle, ret_sig ); + + if (!sig || !ret_sig) return E_INVALIDARG; + if (sig->hdr.magic != SIG_MAGIC) + { + *ret_sig = NULL; + return CRYPT_XML_E_HANDLE; + } + + *ret_sig = &sig->sig; + return S_OK; +} diff --git a/dlls/cryptxml/cryptxml.spec b/dlls/cryptxml/cryptxml.spec index af3235ae85c..245b46a6bf2 100644 --- a/dlls/cryptxml/cryptxml.spec +++ b/dlls/cryptxml/cryptxml.spec @@ -8,7 +8,7 @@ @ stub CryptXmlGetAlgorithmInfo @ stdcall CryptXmlGetDocContext(ptr ptr) @ stub CryptXmlGetReference -@ stub CryptXmlGetSignature +@ stdcall CryptXmlGetSignature(ptr ptr) @ stub CryptXmlGetStatus @ stub CryptXmlGetTransforms @ stub CryptXmlImportPublicKey diff --git a/include/cryptxml.h b/include/cryptxml.h index d939935b1bb..a72abcfda5d 100644 --- a/include/cryptxml.h +++ b/include/cryptxml.h @@ -318,6 +318,7 @@ typedef struct _CRYPT_XML_STATUS
HRESULT WINAPI CryptXmlClose(HCRYPTXML handle); HRESULT WINAPI CryptXmlGetDocContext(HCRYPTXML handle, const CRYPT_XML_DOC_CTXT **context); +HRESULT WINAPI CryptXmlGetSignature(HCRYPTXML handle, const CRYPT_XML_SIGNATURE **signature); HRESULT WINAPI CryptXmlOpenToDecode(const CRYPT_XML_TRANSFORM_CHAIN_CONFIG *config, DWORD flags, const CRYPT_XML_PROPERTY *property, ULONG property_count, const CRYPT_XML_BLOB *blob, HCRYPTXML *handle);