Skip to content

SecurityTypes Module

The SecurityTypes module provides the core security primitives and types used throughout the UmbraCore framework.

Overview

SecurityTypes defines foundational security-related types, enumerations, and structures that are shared across different modules of the UmbraCore framework. It serves as a central library of security primitives designed to be used consistently throughout the system.

Features

  • Core security primitive types
  • Cryptographic key representations
  • Secure credential containers
  • Error types for security operations
  • Serialisation protocols for secure types

Usage

import SecurityTypes

// Create a secure credential
let credential = SecureCredential(
    username: "repouser",
    passwordData: encryptedPasswordData,
    metadata: [
        "repository": "backup-main",
        "created": ISO8601DateFormatter().string(from: Date())
    ]
)

// Use a security error
func handleError(_ error: SecurityError) {
    switch error {
    case .authenticationFailed:
        // Handle authentication failure
    case .keyGenerationFailed(let reason):
        // Handle key generation failure
    case .encryptionFailed(let underlyingError):
        // Handle encryption failure
    // ...other cases
    }
}

Integration

SecurityTypes is a foundational module that integrates with:

  • SecurityProtocolsCore for protocol definitions
  • UmbraCryptoService for cryptographic operations
  • UmbraKeychainService for secure storage
  • UmbraXPC for secure cross-process operations

Source Code

The source code for this module is located in the Sources/SecurityTypes directory of the UmbraCore repository.