Back to index

nordugrid-arc-nox  1.1.0~rc6
saml_util.h
Go to the documentation of this file.
00001 #ifndef __ARC_SAMLUTIL_H__
00002 #define __ARC_SAMLUTIL_H__
00003 
00004 #include <vector>
00005 #include <string>
00006 
00007 #include <xmlsec/crypto.h>
00008 
00009 #include <arc/XMLNode.h>
00010 
00011 
00012 #define SAML_NAMESPACE "urn:oasis:names:tc:SAML:2.0:assertion"
00013 #define SAMLP_NAMESPACE "urn:oasis:names:tc:SAML:2.0:protocol"
00014 
00015 #define XENC_NAMESPACE   "http://www.w3.org/2001/04/xmlenc#"
00016 #define DSIG_NAMESPACE   "http://www.w3.org/2000/09/xmldsig#"
00017 
00018 namespace Arc {
00019 
00020   typedef enum {
00021     RSA_SHA1,
00022     DSA_SHA1
00023   } SignatureMethod;
00024 
00025   std::string DeflateData(const std::string& data);
00026   
00027   std::string InflateData(const std::string& data);
00028 
00029   std::string URIEscape(const std::string& data);
00030 
00031   std::string URIUnEscape(const std::string& data);
00032 
00033   std::string Base64Encode(const std::string& data);
00034 
00035   std::string Base64Decode(const std::string& data);
00036 
00037 
00038   std::string SignQuery(std::string query, SignatureMethod sign_method, std::string& privkey_file);
00039 
00040   //bool VerifyQuery(const std::string query, const xmlSecKey *sender_public_key);
00041 
00042   bool VerifyQuery(const std::string query, const std::string& sender_cert_str);
00043 
00044   std::string BuildDeflatedQuery(const XMLNode& node);
00045 
00046   bool BuildNodefromMsg(const std::string msg, XMLNode& node);
00047 
00048 }// namespace Arc
00049 
00050 #endif /* __ARC_SAMLUTIL_H__ */