{"repo":"cloudflare/privacypass-issuer","free":true,"listed":false,"github":"https://github.com/cloudflare/privacypass-issuer","clone":"git clone https://github.com/cloudflare/privacypass-issuer.git","description":"A TypeScript Issuer for the Privacy Pass Authentication Protocol","language":"TypeScript","stars":26,"topics":["cryptography","privacy-pass","token","typescript","authentication"],"license":null,"category":"auth-billing-email","readme_excerpt":"privacypass-issuer Privacy Pass Issuer (Draft 16) within Cloudflare Workers. Keys are stored in R2. Deploy Token type Support: Public-Verifiable tokens (Blind-RSA) Authentication All endpoints are public by default. Authentication should be a second layer. Internally, Cloudflare uses Access to protect /admin and /token-request endpoints. Test token issuance One can test token issuance locally using pnpm run test:e2e -- target. If the issuer uses mTLS (Mutual TLS), you can use pnpm run test:e2e -- --cert --key . Key Rotation Key rotation can be either manual, by calling POST /admin/rotate or automated by defining the ROTATION CRON STRING variable with a valid cron string and adding that same cron string value to the triggers.crons list. Rotation of keys works by generating a new pair of private/public keys until it can find one whose token id doesn't conflict with a key pair already stored in the keys R2 Bucket. When it succeeds in generating that, it stores the new key pair in R2. Keys become available as soon as they are stored in R2. The /.well-known/private-token-issuer-directory path directory immediately returns the new keys. Note: Rotation does not delete any keys, and because the maximum amount of keys is 256 and the algorithm for generating them picks an id at random, if there are more than half of the maximum amount of keys, the time it takes to rotate increases. It's important that keys are cleared regularly, see Key Clearing . Key Clearing Any cron string defined i","default_branch":null,"files":null,"tree":[],"storefront":"/r/cloudflare","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/cloudflare/privacypass-issuer/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}