AdES
An Implementation of CAdES, XAdES, PAdES and ASiC for Windows in C++
Install / Use
/learn @WindowsNT/AdESREADME
AdES
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
CAdES
Quick guide:
HRESULT Sign(LEVEL lev,const char* data,DWORD sz,const std::vector<CERT>& Certificates, SIGNPARAMETERS& Params,std::vector<char>& Signature);
HRESULT Verify(const char* data, DWORD sz, LEVEL& lev,const char* 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)
XAdES
Quick guide:
struct FILEREF
{
const char* data = 0; // pointer to data
DWORD sz = 0; // size, or 0 if null terminated XML
const char* ref = 0;
std::string mime = "application/octet-stream";
};
HRESULT XMLSign(LEVEL lev, std::vector<FILEREF>& data,const std::vector<CERT>& Certificates,SIGNPARAMETERS& Params, std::vector<char>& Signature);
// Currently XMLDSIG only
HRESULT XMLVerify(const char* xmldata, LEVEL& lev, ATTACHTYPE& att, const char* omsg, DWORD len, bool WasDetachedCanonicalized,std::vector<PCCERT_CONTEXT> * Certs, VERIFYRESULTS * vr);
PAdES
Quick guide:
HRESULT PDFSign(LEVEL lev,const char* data,DWORD sz,const std::vector<CERT>& Certificates, SIGNPARAMETERS& Params,std::vector<char>& Signature);
ASiC
Quick guide:
HRESULT ASiC(ALEVEL alev,ATYPE typ, LEVEL lev,std::vector<FILEREF>& data,std::vector<CERT>& Certificates, SIGNPARAMETERS& Params, std::vector<char>& fndata);
EXE
Quick guide:
HRESULT PESign(LEVEL lev,const char* data,DWORD sz,const std::vector<CERT>& Certificates, SIGNPARAMETERS& Params,std::vector<char>& Signature);
Related Skills
node-connect
341.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
summarize
341.0kSummarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).
feishu-doc
341.0k|
