---
title: SAIF.Services.WebServices.Epay overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Services.WebServices.Epay
reference_type: package
---

# SAIF.Services.WebServices.Epay overview

> **Documentation context:** Packaged Component (NuGet)

`SAIF.Services.WebServices.Epay` is a small cryptographic integration helper library that implements the US Bank ePay single-sign-on (SSO) handshake. It encrypts session-transfer data using hybrid AES/RSA encryption, signs the payload with a SAIF X.509 certificate, and packages all cryptographic material into a serializable data-transfer object for transmission to US Bank's ePay service.

## Purpose
- Implement the US Bank ePay SSO cryptographic handshake: AES-encrypt the session-transfer payload, RSA-wrap the symmetric key with the US Bank certificate, and digitally sign the ciphertext with the SAIF admin authentication certificate.
- Expose the resulting encrypted data, wrapped key, IV, and digital signature as a single serializable `AdminSingleSignOnData` DTO for consumption by the calling application.
- Resolve X.509 certificates by distinguished name from the Windows certificate store, where DN components are supplied through a centralized configuration service (`IEnvironmentService`).

## Responsibilities
- AES encryption of session-transfer data.
- RSA public-key wrapping of the AES symmetric key using the US Bank SSO certificate.
- RSA digital signing of the AES-encrypted payload using the SAIF admin authentication certificate.
- Certificate DN composition from configuration-supplied key/value pairs.
- Certificate loading from the local machine Windows certificate store (`LocalMachine\Root` and `LocalMachine\My`).
- Serializable DTO packaging of all four SSO handshake components as Base64-encoded strings.

## Key components
- `AdminSingleSignOnData`: Serializable DTO carrying the encrypted data, encrypted symmetric key, IV, and digital signature as Base64-encoded string properties over private byte-array backing fields.
- `USBank`: Static VB module implementing the SSO handshake (`GetSSOData`), certificate DN resolution helpers, and certificate-loading helpers.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `Services\SAIF.Services.WebServices.Epay\SAIF.BOF.Services.WebServices.Epay.vbproj`
- `Services\SAIF.Services.WebServices.Epay\SAIF.BOF.Services.WebServices.Epay.nuspec`
- `Services\SAIF.Services.WebServices.Epay\WebService\AdminSingleSignOnData.vb`
- `Services\SAIF.Services.WebServices.Epay\WebService\USBank.vb`
