---
title: AdminSingleSignOnData
summary: API reference for AdminSingleSignOnData.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Services.WebServices.Epay
reference_type: package
---

# AdminSingleSignOnData

`AdminSingleSignOnData` is a serializable data-transfer object that carries the four cryptographic components of the US Bank ePay SSO handshake — encrypted payload, RSA-wrapped AES key, initialization vector, and digital signature — each encoded as a Base64 string for transport. Instances are produced exclusively by `USBank.GetSSOData` and are intended for read-only consumption by the calling application.

## Purpose
- Package the four SSO handshake outputs (encrypted data, wrapped key, IV, and signature) into a single, transport-ready object.
- Expose each component as a Base64-encoded string property over a private `Byte()` backing field.
- Prevent external mutation: property setters are `Private Set` and discard any assigned value rather than storing it, so the fields can only be populated via the constructor.* See [BR-002](../../business-rules.md#br-002-symmetric-key-material-is-not-retained-on-the-dto).

## Context
- Namespace: `SAIF.Services.WebServices.Epay`
- Assembly/package: `SAIF.Services.WebServices.Epay` (`SAIF.BOF.Services.WebServices.Epay.nupkg`)
- Source: `Services\SAIF.Services.WebServices.Epay\WebService\AdminSingleSignOnData.vb`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| Constructor | `Public Sub New(encryptedData As Byte(), encryptedKey As Byte(), iv As Byte(), signature As Byte())*` | Initializes the DTO with the four cryptographic byte arrays produced by the SSO handshake; backing fields are set directly by the constructor, bypassing the `Private Set` implementations.* |
| `EncryptedData` | `Public Property EncryptedData As String` (Private Set) | Returns the AES-encrypted session-transfer payload as a Base64-encoded string. The `Private Set` discards any assigned value (sets the backing `Byte()` field to `Nothing`) rather than storing it.* |
| `EncryptedKey` | `Public Property EncryptedKey As String` (Private Set) | Returns the RSA-wrapped AES symmetric key as a Base64-encoded string. `Private Set` discards.* |
| `IV` | `Public Property IV As String` (Private Set) | Returns the AES initialization vector as a Base64-encoded string. `Private Set` discards.* |
| `Signature` | `Public Property Signature As String` (Private Set) | Returns the RSA digital signature over the encrypted payload as a Base64-encoded string. `Private Set` discards.* |

## Behavioral notes
- All four properties are effectively read-only from a consumer's perspective: the `Private Set` implementations erase the backing byte array (`= Nothing`) rather than storing the supplied value, so external assignment (or any internal setter call) cannot update the stored data.* See [BR-002](../../business-rules.md#br-002-symmetric-key-material-is-not-retained-on-the-dto).
- The type is not a BOF business object: it does not inherit `clsBusinessBase`/`clsBusinessCollectionBase` and implements no `IBusinessCriteria`.
- Each property's `Get` accessor converts its private `Byte()` backing field to a Base64-encoded string for the return value.*

## Constraints and usage notes
- Instances should only be created by `USBank.GetSSOData`; the constructor is public but is designed for internal construction of the SSO result.*
- All four components are required to complete the SSO handshake exchange with US Bank ePay; a partial payload (any field empty or `Nothing`) would represent a handshake failure.
- Because the `Private Set` erases the backing field, there is no way to re-populate a property value after construction without creating a new instance.*

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `Services\SAIF.Services.WebServices.Epay\WebService\AdminSingleSignOnData.vb`
