HDD Encryption/Decryption: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 70: Line 70:


geli attach -p -k hdd_key.bin  /dev/md1.bswap16
geli attach -p -k hdd_key.bin  /dev/md1.bswap16
geli detach /dev/md1.bswap16.eli
</pre>
</pre>



Revision as of 22:14, 28 February 2013

Introduction

  • The goal is to mount a PS3 HDD on a FreeBSD PC (or FreeBSD PS3) and do changes to it without ENCDEC device.
  • And learn the cool FreeBSD GEOM framework as well :)
  • Everything was tested by me on FreeBSD 9.1.

GEOM bswap16

  • Swaps bytes in every 16-bit word
  • Similar to dm-bswap16 on Linux.
  • The kernel module needs a user-space GEOM counterpart, a shared library which is loaded and used by geom application to send commands to the kernel part.

http://gitorious.ps3dev.net/ps3freebsd/geom-bswap16

http://gitorious.ps3dev.net/ps3freebsd/geom-bswap16-lib

Test

# UI shared library for GEOM bswap16

cp geom_bswap16.so /lib/geom

# Load kernel module

kldload geom_bswap16.ko

# Create a memory block device for testing

mdconfig -a -t vnode -f ~/test.bin -u 0

# Create /dev/md0.bswap16

geom bswap16 create /dev/md0

hexdump -C /dev/md0

00000000  bb aa dd cc 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  ee ff 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00100000

hexdump -C /dev/md0.bswap16

00000000  aa bb cc dd 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  ff ee 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00100000

geom bswap16 destroy md0.bswap16

mdconfig -d -u 0

GEOM geli

Test

mdconfig -a -t vnode -f  ~/ps3da_enc.bin -u 1

geom bswap16 create md1

geli init -K hdd_key.bin -P -e AES-XTS -l 128 -s 512 /dev/md1.bswap16

geli attach -p -k hdd_key.bin  /dev/md1.bswap16

geli detach /dev/md1.bswap16.eli

GEOM part PS3

Links