{"id":20217423,"url":"https://github.com/windowsnt/ades","last_synced_at":"2026-03-06T18:04:07.370Z","repository":{"id":80700392,"uuid":"145431034","full_name":"WindowsNT/AdES","owner":"WindowsNT","description":"An Implementation of CAdES, XAdES, PAdES and ASiC for Windows in C++","archived":false,"fork":false,"pushed_at":"2020-05-18T15:45:22.000Z","size":1362,"stargazers_count":34,"open_issues_count":1,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-24T13:36:08.998Z","etag":null,"topics":["asic","cades","eidas","etsi","mime","pades","pdf","xades","xml"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WindowsNT.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-20T14:48:20.000Z","updated_at":"2023-11-16T18:09:35.000Z","dependencies_parsed_at":"2023-07-27T09:15:57.419Z","dependency_job_id":null,"html_url":"https://github.com/WindowsNT/AdES","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WindowsNT%2FAdES","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WindowsNT%2FAdES/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WindowsNT%2FAdES/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WindowsNT%2FAdES/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WindowsNT","download_url":"https://codeload.github.com/WindowsNT/AdES/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243499,"owners_count":21071054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asic","cades","eidas","etsi","mime","pades","pdf","xades","xml"],"created_at":"2024-11-14T06:34:01.586Z","updated_at":"2026-03-06T18:04:02.341Z","avatar_url":"https://github.com/WindowsNT.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AdES\nA 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.\nArticle at CodeProject: https://www.codeproject.com/Articles/1256991/AdES-An-implementation-of-CAdES-for-Windows-in-Cpl\n\n## CAdES\nQuick guide:\n\n```C++\nHRESULT Sign(LEVEL lev,const char* data,DWORD sz,const std::vector\u003cCERT\u003e\u0026 Certificates, SIGNPARAMETERS\u0026 Params,std::vector\u003cchar\u003e\u0026 Signature);\nHRESULT Verify(const char* data, DWORD sz, LEVEL\u0026 lev,const char* omsg = 0,DWORD len = 0,std::vector\u003cchar\u003e* msg = 0,std::vector\u003cPCCERT_CONTEXT\u003e* Certs = 0,VERIFYRESULTS* vr = 0);\n```\n\nWhere\n* lev, enumeration from LEVEL: CMS,B,T,C,X or XL\n* data/sz, the data to sign\n* Certificates, a list of certificates to use for signing. Each CERT contains the certificate, CRLs, and more validation certificates\n* Params, additional parameters, including timestamp server, policy, commitment type, attach method etc.\n\nIn Verify()\n* data/sz, the signature to verify\n* lev, gets the detected level\n* omsg/len, the original data if the signature was detached\n* msg/certs/results, returned message, certificates used, and other data (policy, commitment type etc)\n\n\n## XAdES\nQuick guide:\n\n```C++\nstruct FILEREF\n{\n\tconst char* data = 0; // pointer to data\n\tDWORD sz = 0; // size, or 0 if null terminated XML\n\tconst char* ref = 0;\n\tstd::string mime = \"application/octet-stream\";\n};\nHRESULT XMLSign(LEVEL lev, std::vector\u003cFILEREF\u003e\u0026 data,const std::vector\u003cCERT\u003e\u0026 Certificates,SIGNPARAMETERS\u0026 Params, std::vector\u003cchar\u003e\u0026 Signature);\n\n// Currently XMLDSIG only\nHRESULT XMLVerify(const char* xmldata, LEVEL\u0026 lev, ATTACHTYPE\u0026 att, const char* omsg, DWORD len, bool WasDetachedCanonicalized,std::vector\u003cPCCERT_CONTEXT\u003e * Certs, VERIFYRESULTS * vr);\n```\n\n## PAdES\nQuick guide:\n\n```C++\nHRESULT PDFSign(LEVEL lev,const char* data,DWORD sz,const std::vector\u003cCERT\u003e\u0026 Certificates, SIGNPARAMETERS\u0026 Params,std::vector\u003cchar\u003e\u0026 Signature);\n```\n\n## ASiC\nQuick guide:\n\n```C++\nHRESULT ASiC(ALEVEL alev,ATYPE typ, LEVEL lev,std::vector\u003cFILEREF\u003e\u0026 data,std::vector\u003cCERT\u003e\u0026 Certificates, SIGNPARAMETERS\u0026 Params, std::vector\u003cchar\u003e\u0026 fndata);\n```\n\n## EXE\nQuick guide:\n\n```C++\nHRESULT PESign(LEVEL lev,const char* data,DWORD sz,const std::vector\u003cCERT\u003e\u0026 Certificates, SIGNPARAMETERS\u0026 Params,std::vector\u003cchar\u003e\u0026 Signature);\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwindowsnt%2Fades","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwindowsnt%2Fades","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwindowsnt%2Fades/lists"}