- Notifications
You must be signed in to change notification settings - Fork17
An Implementation of CAdES, XAdES, PAdES and ASiC for Windows in C++
License
NotificationsYou must be signed in to change notification settings
WindowsNT/AdES
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A C++ library for Windows to create CAdES (B,T,C,X,XL), XAdES (B-T,C,X,XL) and PAdES (B-B,B-T,B-XL) messages. Also supports ASiC-S and ASiC-E with both CAdES and XAdES. 100% ETSI Compliant.Article at CodeProject:https://www.codeproject.com/Articles/1256991/AdES-An-implementation-of-CAdES-for-Windows-in-Cpl
Quick guide:
HRESULTSign(LEVEL lev,constchar* data,DWORD sz,const std::vector<CERT>& Certificates, SIGNPARAMETERS& Params,std::vector<char>& Signature);HRESULTVerify(constchar* data, DWORD sz, LEVEL& lev,constchar* omsg =0,DWORD len =0,std::vector<char>* msg =0,std::vector<PCCERT_CONTEXT>* Certs =0,VERIFYRESULTS* vr =0);
Where
- lev, enumeration from LEVEL: CMS,B,T,C,X or XL
- data/sz, the data to sign
- Certificates, a list of certificates to use for signing. Each CERT contains the certificate, CRLs, and more validation certificates
- Params, additional parameters, including timestamp server, policy, commitment type, attach method etc.
In Verify()
- data/sz, the signature to verify
- lev, gets the detected level
- omsg/len, the original data if the signature was detached
- msg/certs/results, returned message, certificates used, and other data (policy, commitment type etc)
Quick guide:
structFILEREF{constchar* data =0;// pointer to dataDWORD sz =0;// size, or 0 if null terminated XMLconstchar* ref =0;std::string mime ="application/octet-stream";};HRESULTXMLSign(LEVEL lev, std::vector<FILEREF>& data,const std::vector<CERT>& Certificates,SIGNPARAMETERS& Params, std::vector<char>& Signature);// Currently XMLDSIG onlyHRESULTXMLVerify(constchar* xmldata, LEVEL& lev, ATTACHTYPE& att,constchar* omsg, DWORD len,bool WasDetachedCanonicalized,std::vector<PCCERT_CONTEXT> * Certs, VERIFYRESULTS * vr);
Quick guide:
HRESULTPDFSign(LEVEL lev,constchar* data,DWORD sz,const std::vector<CERT>& Certificates, SIGNPARAMETERS& Params,std::vector<char>& Signature);
Quick guide:
HRESULTASiC(ALEVEL alev,ATYPE typ, LEVEL lev,std::vector<FILEREF>& data,std::vector<CERT>& Certificates, SIGNPARAMETERS& Params, std::vector<char>& fndata);
Quick guide:
HRESULTPESign(LEVEL lev,constchar* data,DWORD sz,const std::vector<CERT>& Certificates, SIGNPARAMETERS& Params,std::vector<char>& Signature);