Download the PHP package godaddy/asherah without Composer

On this page you can find all versions of the php package godaddy/asherah. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package asherah

Asherah

Application-layer encryption with automatic key rotation. Rust implementation with bindings for Node.js, Python, .NET, Java, Ruby, and Go.

What is Asherah?

Asherah implements envelope encryption: data is encrypted with a random data key, which is itself encrypted with an intermediate key, which is encrypted by a master key held in a KMS. Keys rotate automatically based on configurable intervals, and old keys remain accessible for decryption while new data is always encrypted with fresh keys.

This design means application code never handles raw master keys, key rotation happens transparently, and compromise of a single data key exposes only one record.

KMS backends: AWS KMS (recommended), AWS Secrets Manager (migration only), static (testing only)

Metastores: DynamoDB, MySQL, Postgres, SQLite, in-memory (testing only)

Language Bindings

Language Package Docs
Node.js asherah on npm README
Python asherah on PyPI README
.NET GoDaddy.Asherah.Encryption on NuGet README
Java com.godaddy.asherah.encryption:appencryption on Maven Central README
Ruby asherah on GitHub Packages README
Go github.com/godaddy/asherah-ffi/asherah-go README
PHP godaddy/asherah on Composer README

Platform Support

Platform Architecture Status
Linux x86_64 (glibc) Supported
Linux x86_64 (musl) Supported
Linux ARM64 (glibc) Supported
Linux ARM64 (musl) Supported
macOS x86_64 Supported
macOS ARM64 (Apple Silicon) Supported
Windows x64 Supported
Windows ARM64 Supported

Quick Start

See each binding's README for complete examples including async APIs, session-based usage, and production configuration.

Input contract

There are two argument categories with different rules:

See docs/input-contract.md for the full per-binding behavior matrix, exception types, and rationale.

Performance

The Rust core delivers sub-microsecond encrypt/decrypt. All language bindings stay under 2μs for sync operations. The table includes both sync and async variants, plus head-to-head comparison with the canonical Go/C#/Java implementations:

Benchmark results — hot cache, Apple M4 Max

See each binding's README for detailed async behavior and per-metastore performance characteristics.

Architecture: Key Hierarchy and Secure Caching

Asherah uses a four-level key hierarchy with envelope encryption:

Secure Memory and Tiered Key Cache

Keys are protected at rest by a three-tier cache with hardware-enforced memory protection:

Tier 1 hit (typical encrypt/decrypt): The decrypted key is already in an mlock'd slab slot — zero crypto overhead, just a pointer read. This is why hot-cache encrypt is ~400ns.

Tier 1 miss, Tier 2 hit: The key's Enclave (AES-256-GCM encrypted ciphertext in heap memory) is decrypted using the Coffer master key from the slab, placed in a free slot, and promoted to the hot cache.

Tier 2 miss (cold start): The key is loaded from the metastore, decrypted through the key hierarchy (KMS decrypts SK, SK decrypts IK), sealed into an Enclave, and promoted into the slab hot cache.

Coffer: The master key for Enclave encryption is split across two mlock'd slots using XOR + hash derivation. Neither slot alone reveals the key. Initialized once at startup with OS entropy.

Session and Key Caches

Above the memory tiers, Asherah maintains logical caches with stale-while-revalidate to prevent thundering herd on cache expiry:

On cache expiry, the stale key is returned immediately while a background refresh loads the latest version from the metastore.

Testing

Project Structure

Directory Description
asherah/ Rust core library
asherah-node/ Node.js bindings
asherah-py/ Python bindings
asherah-dotnet/ .NET bindings
asherah-java/ Java bindings (JNI)
asherah-ruby/ Ruby bindings
asherah-go/ Go bindings (purego, no CGO)
asherah-ffi/ C ABI for language bindings
asherah-server/ gRPC sidecar server
samples/ Usage examples for each language
benchmarks/ Cross-language benchmark suite

Security

License

Apache-2.0


All versions of asherah with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
ext-ffi Version *
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package godaddy/asherah contains the following files

Loading the files please wait ...