<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CryptoKit",
  "identifier" : "/documentation/CryptoKit/SHA3_384",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Apple CryptoKit"
    ],
    "preciseIdentifier" : "s:9CryptoKit8SHA3_384V"
  },
  "title" : "SHA3_384"
}
-->

# SHA3_384

An implementation of Secure Hashing Algorithm 3 (SHA-3) hashing with a 384-bit digest.

```
struct SHA3_384
```

## Overview

The [`SHA3_384`](/documentation/CryptoKit/SHA3_384) hash implements the [`HashFunction`](/documentation/CryptoKit/HashFunction) protocol for the
specific case of SHA-3 hashing with a 384-bit digest ([`SHA3_384Digest`](/documentation/CryptoKit/SHA3_384Digest)).
Larger digests take more space but are more secure.

Applications can compute the digest by calling the static `hash(data:)`
method once. Alternatively, if the data to hash is too large to fit in memory,
applications can compute the digest iteratively by creating a new hash
instance, calling the `update(data:)` method repeatedly with blocks of
data, and then calling the [`finalize()`](/documentation/CryptoKit/SHA3_384/finalize()) method to get the result.

## Topics

### Initializers

[`init()`](/documentation/CryptoKit/SHA3_384/init())

Creates a SHA3-384 hash function.

### Instance Methods

[`func finalize() -> SHA3_384.Digest`](/documentation/CryptoKit/SHA3_384/finalize())

Finalizes the hash function and returns the computed digest.

[`func update(bufferPointer: UnsafeRawBufferPointer)`](/documentation/CryptoKit/SHA3_384/update(bufferPointer:))

Incrementally updates the hash function with the contents of the buffer.

### Type Aliases

[`typealias Digest`](/documentation/CryptoKit/SHA3_384/Digest)

The digest type for a SHA3-384 hash function.

### Type Properties

[`static let blockByteCount: Int`](/documentation/CryptoKit/SHA3_384/blockByteCount)

The number of bytes that represents the hash function’s internal state.

[`static let byteCount: Int`](/documentation/CryptoKit/SHA3_384/byteCount)

The number of bytes in a SHA3-384 digest.

## Relationships

### Conforms To

[`Copyable`](/documentation/Swift/Copyable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`HashFunction`](/documentation/CryptoKit/HashFunction)

[`Escapable`](/documentation/Swift/Escapable)

[`Sendable`](/documentation/Swift/Sendable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)