NickBrighten/NBSCrypto

GitHub: NickBrighten/NBSCrypto

一个用 Objective-C 和 C 编写的 Apple 全平台轻量级密码学框架,支持数十种对称加密、哈希和 MAC 算法。

Stars: 1 | Forks: 0

# NBSCrypto NBSCrypto 是一个专为 iOS、iPadOS、macOS、tvOS 和 watchOS 设计的超轻量级加密框架。 本仓库包含整个 Xcode 项目及其所有 target,可直接构建。\ NSCrypto 使用 `Objective-C` 和 `C` 编写。 可以在 Objective-C 和 Swift 中使用 `.framework` 或 `.xcframework`。\ 要将 `.framework` 或 `.xcframework` 集成到 Objective-C 项目中,您可以参考我们的指南:[将 NBSCrypto 集成到 Objective-C 项目](https://localhost);要将其集成到 Swift 项目中,您可以参考我们的指南:[将 NBSCrypto 集成到 Swift 项目](https://localhost)。 预编译版本将提供多 target 的 `.xcframework`,适用于生产环境/部署和模拟器,可[在此获取](https://github.com/NickBrighten/NBSCrypto/releases)。 XCFramework `.xcframework` 是 Apple 推荐的、用于分发编译二进制代码和框架的现代格式。它允许开发者将支持多种平台(如 iOS、iPadOS、macOS、tvOS、visionOS 和 watchOS)的库打包成一个统一的组件,并在真机和模拟器上通用。 如果您希望将此源代码用于您自己的库(以及用于非 Apple 设备平台),您可以从 `src` 文件夹开始,对代码进行扩展和优化。 # # 目录 - [协作](#collaboration) - [支持的加密算法](#supported-cipher-algorithms) - [支持的哈希算法](#supported-hash-algorithms) - [支持的 MAC 算法](#supported-mac-algorithms) # ## 分支 如果您希望依赖于这样一个不稳定的分支,请创建此仓库的您自己的 fork,以确保您的使用不会受到影响。 # # 支持的加密算法 - __AES / RIJNDAEL__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __ANUBIS / ANUBIS-TWEAK__ - BIT-LENGTH: `128` `160` `192` `224` `256` `288` `320` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __ARIA__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __BLOWFISH__ - BIT-LENGTH: `128` up to `576` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __CAMELLIA__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __CAST-5__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __CAST-6__ - BIT-LENGTH: `128` `160` `192` `224` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __CHACHA8__ - BIT-LENGTH: `128` `256` - MODES: `CHACHA8POLY1305` - __CHACHA12__ - BIT-LENGTH: `128` `256` - MODES: `CHACHA12POLY1305` - __CHACHA20__ - BIT-LENGTH: `128` `256` - MODES: `CHACHA20POLY1305` - __DES__ - BIT-LENGTH: `64` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __DES-EDE / DES-EDE2__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __DES3 / DES-EDE3__ - BIT-LENGTH: `192` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __IDEA__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __KASUMI / A5-3__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __KHAZAD__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __LEA__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __MARS__ - BIT-LENGTH: `128` `160` `192` `224` `256` `288` `320` `352` `384` `416` `448` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __NOEKEON__ - BIT-LENGTH: `128` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __PRESENT__ - BIT-LENGTH: `80` `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __RC2__ - BIT-LENGTH: `1024` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __RC4__ - BIT-LENGTH: `2048` - MODES: `none` - __RC6__ - BIT-LENGTH: `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __SAFER-K64 / SAFER-SK64__ - BIT-LENGTH: `64` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __SAFER-K128 / SAFER-SK128__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __SAFER+__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __SEED__ - BIT-LENGTH: `128` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __SERPENT__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __SKIPJACK__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __SM4__ - BIT-LENGTH: `128` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __TEA__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` - __TWOFISH__ - BIT-LENGTH: `128` `192` `256` - MODES: `CBC` `CCM` `CFB` `CTR` `EAX` `ECB` `F8` `GCM` `LRW` `OCB` `OCB3` `OFB` `XTS` - __XTEA__ - BIT-LENGTH: `128` - MODES: `CBC` `CFB` `CTR` `EAX` `ECB` `F8` `OCB` `OFB` # # 支持的哈希算法 - __ADLER32__ - BIT-LENGTH: `32` - __ARIRANG__ - BIT-LENGTH: `224` `256` `384` `512` - __BLAKE2B__ - BIT-LENGTH: `160` `256` `384` `512` - __BLAKE2S__ - BIT-LENGTH: `128` `160` `224` `256` - __BLAKE3__ - BIT-LENGTH: `256` - __BLUEMIDNIGHTWISH__ - BIT-LENGTH: `224` `256` `384` `512` - __CHI__ - BIT-LENGTH: `224` `256` `384` `512` - __CRC-8__ - BIT-LENGTH: `8` - VARIATIONS: `AES` `AUTOSAR` `BLUETOOTH` `CCITT` `CDMA2000` `DARC` `DVB-S2` `EBU` `GSM-A` `GSM-B` `HITAG` `I-432-1` `ICODE` `ITU` `LTE` `MAXIM` `MAXIM-DOWN` `MIFARE-MAD` `NRSC-5` `OPENSEAFTY` `ROHC` `SAE-J1850` `SMBUS` `TECH-3250` `WCDMA` - __CRC-16__ - BIT-LENGTH: `16` - VARIATIONS: `ACORN` `ARC` `AUG-CCITT` `AUTOSAR` `BLUETOOTH` `BUYPASS` `CCITT` `CCITT-FALSE` `CCITT-TRUE` `CDMA2000` `CMS` `DARC` `DDS110` `DECT-R` `DECT-X` `DNP` `EN-13757` `EPC` `EPC-C1G2` `GENIBUS` `GSM` `IBM` `IBM-3740` `IBM-SDLC` `ICODE` `IEC-61158-2` `ISO-HDLC` `ISO-IEC-14443-3-A` `ISO-IEC-14443-3-B` `KERMIT` `LHA` `LJ1200` `LTE` `M17` `MAXIM` `MAXIM-DOWN` `MCRF4XX` `MODBUS` `NRSC-5` `OPENSEAFTY-A` `OPENSEAFTY-B` `PROFIBUS` `RIELLO`SPI-FUJITSU` `T10-DIF` `TELEDISK` `TMS37157` `UMTS` `USB` `V41LSB` `V41MSB` `VERIFONE` `X-25` `XMODEM` `ZMODEM` - __CRC-24__ - BIT-LENGTH: `24` - VARIATIONS: `BLE` `FLEXRAY-A` `FLEXRAY-B` `INTERLAKEN` `LTE-A` `LTE-B` `OPENPGP` `OS-9` `RADIX-64` `RTCM-104V3` `WDCMA` - __CRC-32__ - BIT-LENGTH: `32` - VARIATIONS: `AAL5` `ADCCP` `AIXM` `AUTOSAR` `B` `BASE91-C` `BASE91-D` `BZIP2` `C` `CASTAGNOLI` `CD-ROM-EDC` `CKSUM` `D` `DECT-B` `IEEE-802-3` `INTERLAKEN` `ISCSI` `ISO-HDLC` `JAMCRC` `MEF` `MPEG2` `NVME` `POSIX` `Q` `V42` `XFER` `XZ` - __CRC-64__ - BIT-LENGTH: `64` - VARIATIONS: `ECMA-182` `GO-ECMA` `GO-ISO` `ISO-3309` `MS` `NVME` `REDIS` `WE` `XZ` - __ECHO__ - BIT-LENGTH: `224` `256` `384` `512` - __FNV1-32 / FNV1a-32__ - BIT-LENGTH: `32` - __FNV1-64 / FNV1a-64__ - BIT-LENGTH: `64` - __GOST / GOST-CRYPTO__ - BIT-LENGTH: `256` - __GROESTL__ - BIT-LENGTH: `224` `256` `384` `512` - __HAMSI__ - BIT-LENGTH: `224` `256` `384` `512` - __HAVAL-3 / HAVAL-4 / HAVAL-5__ - BIT-LENGTH: `128` `160` `192` `224` `256` - __JH__ - BIT-LENGTH: `224` `256` `384` `512` - __JOAAT__ - BIT-LENGTH: `32` - __KECCAK__ - BIT-LENGTH: `224` `256` `384` `512` - __KUPYNA__ - BIT-LENGTH: `256` `512` - __LANE__ - BIT-LENGTH: `224` `256` `384` `512` - __LESAMNTA__ - BIT-LENGTH: `224` `256` `384` `512` - __LUFFA__ - BIT-LENGTH: `224` `256` `384` `512` - __MD2 / MD4 / MD5__ - BIT-LENGTH: `128` - __MURMUR3A__ - BIT-LENGTH: `32` - __MURMUR3C / MURMUR3F__ - BIT-LENGTH: `128` - __RIPEMD__ - BIT-LENGTH: `128` `160` `256` `320` - __SHA-1__ - BIT-LENGTH: `160` - __SHA-2__ - BIT-LENGTH: `224` `256` `384` `512` - __SHA-3__ - BIT-LENGTH: `224` `256` `384` `512` - __SHABAL__ - BIT-LENGTH: `192` `224` `256` `384` `512` - __SHAKE__ - BIT-LENGTH: `128` `256` - __SHAVITE3__ - BIT-LENGTH: `224` `256` `384` `512` - __SIMD__ - BIT-LENGTH: `224` `256` `384` `512` - __SM3__ - BIT-LENGTH: `256` - __SNEFRU__ - BIT-LENGTH: `256` - __STREEBOG / GOST-R34112012__ - BIT-LENGTH: `256` `512` - __SWIFFTX__ - BIT-LENGTH: `224` `256` `384` `512` - __TIGER / TIGER-2__ - BIT-LENGTH: `128` `160` `192` - __WHIRPOOL__ - BIT-LENGTH: `512` - __XXH__ - BIT-LENGTH: `32` `64` `128` # # 支持的 MAC 算法 - __F9__ - `cipher` - __HMAC__ - `generic` `hash` - __OMAC__ - `cipher` - __PELICAN__ - `generic` `hash` - __PMAC__ - `cipher` - __POLY1305__ - `generic` `hash` #
标签:Apple生态, CVE监控, Objective-C, 加密框架, 客户端加密, 密码学, 手动系统调用