Iddawc

Jul 20, 2023

OAuth2/OIDC Client and Relying Party library

Iddawc is a C library used to implement OAuth2/OIDC clients according to the OAuth2 RFC and the OpenID Connect Specs.

It’s based on Ulfius library for the HTTP requests and response management and Rhonabwy library for the JOSE management.

Iddawc supports the following features

  • Loading openid-configuration endpoints and parsing the results
  • Making auth requests using the given parameters client_id, client_secret, redirect_uri, etc. and parsing the result
  • Making token requests using the given parameters code, client_id, client_secret, redirect_uri, etc. and parsing the result
  • Making userinfo, token introspection, token revocation requests
  • Parse responses, validate id_token
  • Registering new clients using the register endpoint if any
  • Sending signed and or encrypted requests in the auth and token endpoints
  • Client TLS Authentication available
  • Making Pushed Auth Requests
  • Making Rich Auth Requests
  • Adding claims to requests
  • Sending DPoP proofs
  • JWT Secured Authorization Response Mode
  • End session and single-logout functionalities


Checkout these related ports:
  • Zzuf - Transparent application input fuzzer
  • Zlint - X.509 certificate linter
  • Zeronet - Decentralized websites using Bitcoin crypto and BitTorrent network
  • Zenmap - GUI frontend for the Nmap scanning utility
  • Zeek - System for detecting network intruders in real-time
  • Zaproxy - The OWASP zed attack proxy
  • Yubioath-desktop - GUI for displaying OATH codes with a Yubikey
  • Yubikey-personalization-gui - Graphical YubiKey personalization tool
  • Yubikey-manager-qt - Cross-platform application for configuring any YubiKey
  • Yubikey-agent - Seamless ssh-agent for YubiKeys
  • Yubico-piv-tool - Yubico PIV tool
  • Ylva - Command line password manager and file encryption program
  • Ykpers - Library and tool for personalization of Yubico's YubiKey
  • Ykclient - Yubico C client library
  • Yersinia - Layer 2 vulnerability scanner (switches, spanning tree, 802.1q ...)