---
title: SAIF.Services.WebServices.Epay dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Services.WebServices.Epay
reference_type: package
---

# SAIF.Services.WebServices.Epay dependencies

## Internal dependencies

All internal dependencies are consumed as NuGet package references; the solution contains only this library's own project and no in-repo project references.

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| `SAIF.BOF.Framework` v2.0.22103.3 (Bindable, Connection, Core, DNS, Logging, Mail, Security, Security.EnvironmentApi) | NuGet Package | Actively used: `USBank.vb` imports `SAIF.Framework.Security` and aliases `SAIF.Framework.Security.Cryptography` as `SAIFCrypto`, calling `SAIFCrypto.AES.Encrypt`, `SAIFCrypto.Certificates.EncryptWithCertPublicKey`, `SAIFCrypto.Certificates.SignWithCertPrivateKey`, and `SAIFCrypto.Certificates.LoadCert`/`GetDistinguishedName`. |
| `SAIF.Framework.Common` v2.0.22074.3 | NuGet Package | Actively used: `USBank.vb` imports `SAIF.Framework.Extensions` and calls `AppGlobal.EnvironmentService.GetConfigSetting(...)` for the three certificate-DN settings. |
| `SAIF.HashUtil` v2.0.22083.2 | NuGet Package | Declared dependency; no direct usage found in compiled source.** |
| `SAIF.Web.API.Clients` v2.0.22083.1 (assemblies `SAIF.Web.API.Clients`, `SAIF.Web.API.Core`) | NuGet Package | Declared dependency; no direct usage found in compiled source.** |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| `Newtonsoft.Json` | 8.0.3 | Declared; not directly used — `USBank.vb` uses `System.Web.Script.Serialization.JavaScriptSerializer` (from `System.Web.Extensions`) for JSON deserialization instead. |
| `Oracle.ManagedDataAccess` | 21.5.0 | Declared; provider factory registered in `Web.config`/`App.config` only, not invoked by any compiled code in this library. |
| `RestSharp` | 106.12.0 | Declared; not used in compiled source. |
| `System.Web.Extensions` (framework assembly) | — | Provides `JavaScriptSerializer`, used by `GetCertificateParameters` to deserialize the cert-DN configuration JSON. |
| `System.Security.Cryptography.X509Certificates` (BCL) | — | `X509Certificate2`, `StoreName`, and `StoreLocation` used directly for certificate-store lookups. |
| BCL polyfill packages (`Microsoft.Bcl.AsyncInterfaces`, `System.Buffers`, `System.Memory`, `System.Numerics.Vectors`, `System.Runtime.CompilerServices.Unsafe`, `System.Text.Encodings.Web`, `System.Text.Json`, `System.Threading.Tasks.Extensions`, `System.ValueTuple`) | various | Transitive BCL polyfill packages; not directly consumed by this library's code. |

## Configuration dependencies

Certificate-DN configuration keys required at runtime by this library:

| Setting key | Retrieval method | Consuming member | Varies by environment |
| --- | --- | --- | --- |
| `usBankEPaySSOCertDN` | `AppGlobal.EnvironmentService.GetConfigSetting` | `USBank.LoadUSBankCert` (via `GetCertificateParameters`) | Yes — differs between test/production US Bank SSO certificates. |
| `usBankEPayAuthenticationCertDN` | `AppGlobal.EnvironmentService.GetConfigSetting` | `USBank.GetSAIFCertDistinguishedName` (via `GetCertificateParameters`) | Yes — differs per environment/certificate rotation. |
| `usBankEPayAuthenticationAdminCertDN` | `AppGlobal.EnvironmentService.GetConfigSetting` | `USBank.GetSAIFAdminCertDistinguishedName` (via `GetCertificateParameters`) | Yes — differs per environment/certificate rotation. |

See [Configuration](configuration.md) for the full settings catalog.

## Dependency risks and notes
- No cached inherited framework context is available for `SAIF.Framework.Security.Cryptography` (`SAIFCrypto`) or `AppGlobal.EnvironmentService`/`IEnvironmentService` — their definitions live in referenced framework packages (`SAIF.BOF.Framework`/`SAIF.Framework.Common`), and classification as framework-inherited is based on absence of local definitions plus the corresponding package references, not independently confirmed against framework source.**
- If any of the three cert-DN configuration keys is missing or contains malformed JSON, `JavaScriptSerializer.Deserialize` throws, and the corresponding `Load*Cert` call fails — surfacing as `ApplicationException("USBank Cert not found.")` / `"SAIF cert not found."` in `GetSSOData`.
- Because certificates are resolved by DN lookup against the local machine certificate store rather than a secure config vault, correct deployment of the corresponding certificates to each environment's certificate store is an implicit, undocumented-in-config runtime dependency.
- `wsCreditCardPayment.vb` depends on an undefined type (`USB_EPay.SessionTransfer`) not present in this library or its declared package dependencies; it is excluded from the compile list and does not build or ship as part of this assembly.
- Several declared package dependencies (`SAIF.HashUtil`, `SAIF.Web.API.Clients`, `Oracle.ManagedDataAccess`, `RestSharp`) show no confirmed usage in compiled source — their presence may reflect shared project-template boilerplate rather than active runtime need.**

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

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- `Services\SAIF.Services.WebServices.Epay\WebService\USBank.vb`
- `Services\SAIF.Services.WebServices.Epay\SAIF.BOF.Services.WebServices.Epay.vbproj`
- `Services\SAIF.Services.WebServices.Epay\packages.config`
- `Services\SAIF.Services.WebServices.Epay\Web.config`
- `Services\SAIF.Services.WebServices.Epay\App.config`
