emoose / ExCrypt

Open source replacement for the Xbox360 XeCrypt suite.
BSD 3-Clause "New" or "Revised" License
26 stars 4 forks source link

Implementation Status #5

Open emoose opened 3 years ago

emoose commented 3 years ago

TODO:

Kernel: 67/88 Export Name Location Implemented Has Tests? Notes
XeCryptAesKey Kernel :heavy_check_mark: :x:
XeCryptAesEcb Kernel :heavy_check_mark: :x:
XeCryptAesCbc Kernel :heavy_check_mark: :x:
XeCryptBnDwLeDhEqualBase Kernel :x: :x:
XeCryptBnDwLeDhInvalBase Kernel :x: :x:
XeCryptBnDwLeDhModExp Kernel :x: :x:
XeCryptBnDw_Copy Kernel :heavy_check_mark: :x:
XeCryptBnDw_SwapLeBe Kernel :heavy_check_mark: :x:
XeCryptBnDw_Zero Kernel :heavy_check_mark: :x:
XeCryptBnDwLePkcs1Format Kernel :x: :x:
XeCryptBnDwLePkcs1Verify Kernel :x: :x:
XeCryptBnQwBeSigCreate Kernel :x: :x:
XeCryptBnQwBeSigFormat Kernel :heavy_check_mark: :x:
XeCryptBnQwBeSigVerify Kernel :heavy_check_mark: :x:
XeCryptBnQwNeModExp Kernel :x: :x:
XeCryptBnQwNeModExpRoot Kernel :x: :x:
XeCryptBnQwNeModInv Kernel :heavy_check_mark: :x:
XeCryptBnQwNeModMul Kernel :heavy_check_mark: :x:
XeCryptBnQwNeRsaKeyGen Kernel :x: :x:
XeCryptBnQwNeRsaPrvCrypt Kernel :x: :x:
XeCryptBnQwNeRsaPubCrypt Kernel :heavy_check_mark: :x:
XeCryptBnQw_Copy Kernel :heavy_check_mark: :x:
XeCryptBnQw_SwapDwQw Kernel :heavy_check_mark: :x:
XeCryptBnQw_SwapDwQwLeBe Kernel :heavy_check_mark: :x:
XeCryptBnQw_SwapLeBe Kernel :heavy_check_mark: :x:
XeCryptBnQw_Zero Kernel :heavy_check_mark: :x:
XeCryptChainAndSumMac Kernel :heavy_check_mark: :x:
XeCryptDesParity Kernel :heavy_check_mark: :x:
XeCryptDesKey Kernel :heavy_check_mark: :x:
XeCryptDesEcb Kernel :heavy_check_mark: :x:
XeCryptDesCbc Kernel :heavy_check_mark: :x:
XeCryptDes3Key Kernel :heavy_check_mark: :x:
XeCryptDes3Ecb Kernel :heavy_check_mark: :x:
XeCryptDes3Cbc Kernel :heavy_check_mark: :x:
XeCryptHmacMd5Init Kernel :heavy_check_mark: :x:
XeCryptHmacMd5Update Kernel :heavy_check_mark: :x:
XeCryptHmacMd5Final Kernel :heavy_check_mark: :x:
XeCryptHmacMd5 Kernel :heavy_check_mark: :x:
XeCryptHmacShaInit Kernel :heavy_check_mark: :x:
XeCryptHmacShaUpdate Kernel :heavy_check_mark: :x:
XeCryptHmacShaFinal Kernel :heavy_check_mark: :x:
XeCryptHmacSha Kernel :heavy_check_mark: :x:
XeCryptHmacShaVerify Kernel :heavy_check_mark: :x:
XeCryptMd5Init Kernel :heavy_check_mark: :x:
XeCryptMd5Update Kernel :heavy_check_mark: :x:
XeCryptMd5Final Kernel :heavy_check_mark: :x:
XeCryptMd5 Kernel :heavy_check_mark: :x:
XeCryptParveEcb Kernel :heavy_check_mark: :x:
XeCryptParveCbcMac Kernel :heavy_check_mark: :x:
XeCryptRandom Kernel :x: :x: Uses RC4 with a static RC4_STATE, inited by Hypervisor during boot - is it possible to find what that initial value is?
XeCryptRc4Key Kernel :heavy_check_mark: :x:
XeCryptRc4Ecb Kernel :heavy_check_mark: :x:
XeCryptRc4 Kernel :heavy_check_mark: :x:
XeCryptRotSumSha Kernel :heavy_check_mark: :x:
XeCryptShaInit Kernel :heavy_check_mark: :x:
XeCryptShaUpdate Kernel :heavy_check_mark: :x:
XeCryptShaFinal Kernel :heavy_check_mark: :x:
XeCryptSha Kernel :heavy_check_mark: :x:
XeCryptSha256Init Kernel :heavy_check_mark: :x:
XeCryptSha256Update Kernel :heavy_check_mark: :x:
XeCryptSha256Final Kernel :heavy_check_mark: :x:
XeCryptSha256 Kernel :heavy_check_mark: :x:
XeCryptSha384Init Kernel :heavy_check_mark: :x:
XeCryptSha384Update Kernel :heavy_check_mark: :x:
XeCryptSha384Final Kernel :heavy_check_mark: :x:
XeCryptSha384 Kernel :heavy_check_mark: :x:
XeCryptSha512Init Kernel :heavy_check_mark: :x:
XeCryptSha512Update Kernel :heavy_check_mark: :x:
XeCryptSha512Final Kernel :heavy_check_mark: :x:
XeCryptSha512 Kernel :heavy_check_mark: :x:
XeCryptBnQwNeCompare Kernel :heavy_check_mark: :x:
XeCryptAesCtr Kernel :x: :x:
XeCryptAesCbcMac Kernel :x: :x:
XeCryptAesDmMac Kernel :x: :x:
XeCryptSha224Init Kernel :heavy_check_mark: :x:
XeCryptAesCreateKeySchedule Kernel :heavy_check_mark: :x:
XeCryptAesEncryptOne Kernel :heavy_check_mark: :x:
XeCryptAesDecryptOne Kernel :heavy_check_mark: :x:
XeCryptAesCbcEncrypt Kernel :heavy_check_mark: :x:
XeCryptAesCbcDecrypt Kernel :heavy_check_mark: :x:
XeCryptAesGcmInitialize Kernel :x: :x:
XeCryptAesGcmUpdate Kernel :x: :x:
XeCryptAesGcmFinalize Kernel :x: :x:
XeCryptEccGetCurveParameters Kernel :heavy_check_mark: :x: Weird function, returns an address to a uint32? Is there anything that uses this we can look at?
XeCryptEccEcdhGenerateKeypair Kernel :x: :x:
XeCryptEccEcdhExponentiate Kernel :x: :x:
XeCryptEccEcdsaGenerateSignature Kernel :x: :x:
XeCryptEccEcdsaVerifySignature Kernel :x: :x:

Extra: 2/8

These are mentioned in a header file available on pastebin, doesn't seem like kernel has them included though, need to see if any bootloaders or other OS files might include them (otherwise there's not really any way to tell how they're implemented...)

If nothing uses them I guess they aren't that important, but still worth mentioning for completeness sake.

Export Name Location Implemented Has Tests? Notes
XeCryptBnQwNeRsaPrvExpFromRoot Header :x: :x: Generates private exponent for input private key?
XeCryptBnQwBeSigDifference Header (+ Bootloaders/HV?) ✔️ :x: Mostly same as SigVerify but "returns difference"?
XeCryptMemDiff 1BL ✔️ :x: Used by SigDifference
XeCryptBnQwNeEcSigVerify Header :x: :x: Elliptic curve
XeCryptEmeOaepPack Header :x: :x:
XeCryptEmeOaepUnpack Header :x: :x:
XeCryptPkcs1ReverseBytes Header :x: :x: Related to the EmeOaep funcs above
XeCryptOmac1Compute Header :x: :x:
UCTREK-Raymond commented 3 years ago

Xbox 360 controller authentication may be inlcuded in cheeklist ?