Difference between revisions of "Cryptographic Module"
Jump to navigation
Jump to search
m |
m (→Examples) |
||
Line 79: | Line 79: | ||
'''Query:''' | '''Query:''' | ||
<pre class="brush:xquery"> | <pre class="brush:xquery"> | ||
− | crypto:hmac('message', ) | + | crypto:hmac('message','secretkey','md5','base64') |
</pre> | </pre> |
Revision as of 12:37, 10 October 2011
This module contains XQuery functions to perform cryptographic operations in XQuery. The cryptographic module is based on an early draft of the EXPath Cryptographic Module and provides the following functionality:
- Creation of message authentication codes (HMAC)
- Creation and validation of an XML Digital Signature
- Encryption and decryption
This module is introduced with Version 7.0 of BaseX.
Contents
crypto:hmac
Signatures | crypto:hmac($message as xs:string(), $secret-key as xs:string(), algorithm as xs:string()) as xs:string() crypto:hmac($message as xs:string(), $secret-key as xs:string(), algorithm as xs:string(), $encoding as xs:string()) as xs:string()
|
Summary | Creates a message authentication code via a cryptographic hash function and a secret key. $encoding must either be hex , base64 or the empty string (default is base64 ) and specifies the encoding of the returned authentication code.$algorithm describes the hash algorithm which is used for encryption. Currently supported are md5 , sha1 , sha256 , sha384 , sha512 .
|
Errors | FOCX0013 is raised if the specified hashing algorithm is not supported. FOCX0014 is raised if the specified encoding method is not supported. |
crypto:encrypt
Signatures | crypto:encrypt($input as xs:string(), $encryption-type as xs:string(), $secret-key as xs:string(), $cryptographic-algorithm as xs:string()) as xs:string()
|
Summary | ? |
Errors | ? |
crypto:decrypt
Signatures | crypto:decrypt($input as xs:string(), $decryption-type as xs:string(), $secret-key as xs:string(), $cryptographic-algorithm as xs:string()) as xs:string()
|
Summary | ? |
Errors | ? |
crypto:generate-signature
Signatures | crypto:generate-signature($input-doc node(), $canonicalization-algorithm as xs:string(), $digest-algorithm as xs:string(), $signature-algorithm as xs:string(), $signature-namespace-prefix as xs:string(), $signature-type as xs:string()) as node() crypto:generate-signature($input-doc node(), $canonicalization-algorithm as xs:string(), $digest-algorithm as xs:string(), $signature-algorithm as xs:string(), $signature-namespace-prefix as xs:string(), $signature-type as xs:string(), $xpath-expression as xs:string()) as node() crypto:generate-signature($input-doc node(), $canonicalization-algorithm as xs:string(), $digest-algorithm as xs:string(), $signature-algorithm as xs:string(), $signature-namespace-prefix as xs:string(), $signature-type as xs:string(), $digital-certificate as node()) as node() crypto:generate-signature($input-doc node(), $canonicalization-algorithm as xs:string(), $digest-algorithm as xs:string(), $signature-algorithm as xs:string(), $signature-namespace-prefix as xs:string(), $signature-type as xs:string(), $xpath-expression as xs:string(), $digital-certificate as node()) as node()
|
Summary | ? |
Errors | ? |
crypto:validate-signature
Signatures | crypto:validate-signature($input-doc as node()) as xs:boolean()
|
Summary | ? |
Errors | ? |
Examples
Example 1: Returning the message authentication code (MAC) for a message.
Query:
crypto:hmac('message','secretkey','md5','base64')