2026-04-11 23:17:09 +01:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en-US" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=11" / >
2026-10-08 20:15:08 +01:00
< meta name = "generator" content = "Doxygen 1.18.0" / >
2026-04-11 23:17:09 +01:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > libaaruformat: src/ps3/ps3_crypto.h File Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "dynsections.js" > < / script >
2026-10-08 20:15:08 +01:00
< script type = "text/javascript" src = "codefolding.js" > < / script >
2026-04-11 23:17:09 +01:00
< script type = "text/javascript" src = "clipboard.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "navtreedata.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< script type = "text/javascript" src = "cookie.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
< div id = "projectname" > libaaruformat< span id = "projectnumber" >   1.0< / span >
< / div >
< div id = "projectbrief" > Aaru Data Preservation Suite - Format Library< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2026-10-08 20:15:08 +01:00
<!-- Generated by Doxygen 1.18.0 -->
2026-04-11 23:17:09 +01:00
< script type = "text/javascript" >
2026-10-08 20:15:08 +01:00
let searchBox = new SearchBox("searchBox", "search/",'.html');
2026-04-11 23:17:09 +01:00
< / script >
< script type = "text/javascript" >
2026-10-08 20:15:08 +01:00
document.addEventListener('DOMContentLoaded', codefold.init);
< / script >
< script type = "application/json" id = "doxygen-config" >
{
"relPath": "",
"generateTreeView": true,
"searchEngine": true,
"serverBasedSearch": false,
"disableIndex": false,
"dynamicMenus": true,
"fullSidebar": false
}
2026-04-11 23:17:09 +01:00
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
2026-10-08 20:15:08 +01:00
< div id = "main-nav-mobile" >
< div class = "sm sm-dox" > < input id = "main-menu-state" type = "checkbox" / >
< label class = "main-menu-btn" for = "main-menu-state" >
< span class = "main-menu-btn-icon" > < / span > Toggle main menu visibility< / label >
< span id = "searchBoxPos1" > < / span >
< / div >
< / div > <!-- main - nav - mobile -->
< div id = "main-nav" >
< ul class = "sm sm-dox" id = "main-menu" >
< li id = "searchBoxPos2" >
< div id = "MSearchBox" class = "MSearchBoxInactive" >
< span class = "left" >
< span id = "MSearchSelect" class = "search-icon" > < span class = "search-icon-dropdown" > < / span > < / span >
< input type = "text" id = "MSearchField" value = "" placeholder = "Search" accesskey = "S" / >
< / span > < span class = "right" >
< a id = "MSearchClose" href = "javascript:searchBox.CloseResultsWindow()" > < div id = "MSearchCloseImg" class = "close-icon" > < / div > < / a >
< / span >
< / div >
< / li >
< / ul >
< / div > <!-- main - nav -->
2026-04-11 23:17:09 +01:00
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
2026-10-08 20:15:08 +01:00
< div id = "splitbar" class = "ui-resizable-handle" >
2026-04-11 23:17:09 +01:00
< / div >
< / div >
< script type = "text/javascript" >
2026-10-08 20:15:08 +01:00
document.addEventListener('DOMContentLoaded',() => { initNavTree('ps3__crypto_8h.html','',''); });
2026-04-11 23:17:09 +01:00
< / script >
< div id = "container" >
< div id = "doc-content" >
<!-- window showing the filter options -->
2026-10-08 20:15:08 +01:00
< div id = "MSearchSelectWindow" >
2026-04-11 23:17:09 +01:00
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< div id = "MSearchResults" >
< div class = "SRPage" >
< div id = "SRIndex" >
< div id = "SRResults" > < / div >
< div class = "SRStatus" id = "Loading" > Loading...< / div >
< div class = "SRStatus" id = "Searching" > Searching...< / div >
< div class = "SRStatus" id = "NoMatches" > No Matches< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "header" >
< div class = "headertitle" > < div class = "title" > ps3_crypto.h File Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< div class = "textblock" > < code > #include < stdbool.h> < / code > < br / >
< code > #include < stdint.h> < / code > < br / >
< / div >
< p > < a href = "ps3__crypto_8h_source.html" > Go to the source code of this file.< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 id = "header-func-members" class = "groupheader" > < a id = "func-members" name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
< tr class = "memitem:a8ee401b8bd7370fef44a5cfdcf361ee6" id = "r_a8ee401b8bd7370fef44a5cfdcf361ee6" > < td class = "memItemLeft" > void  < / td > < td class = "memItemRight" > < a class = "el" href = "#a8ee401b8bd7370fef44a5cfdcf361ee6" > ps3_derive_disc_key< / a > (const uint8_t data1[16], uint8_t disc_key[16])< / td > < / tr >
< tr class = "memdesc:a8ee401b8bd7370fef44a5cfdcf361ee6" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Derive a PS3 disc key from a data1 key. < br / > < / td > < / tr >
< tr class = "memitem:a9c59bc8ce8ecd8457a8eb62287b09915" id = "r_a9c59bc8ce8ecd8457a8eb62287b09915" > < td class = "memItemLeft" > void  < / td > < td class = "memItemRight" > < a class = "el" href = "#a9c59bc8ce8ecd8457a8eb62287b09915" > ps3_derive_iv< / a > (uint64_t sector_num, uint8_t iv[16])< / td > < / tr >
< tr class = "memdesc:a9c59bc8ce8ecd8457a8eb62287b09915" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Derive the per-sector AES IV from a sector number. < br / > < / td > < / tr >
< tr class = "memitem:af9a3081e827ba140edc64fda2e93ee96" id = "r_af9a3081e827ba140edc64fda2e93ee96" > < td class = "memItemLeft" > void  < / td > < td class = "memItemRight" > < a class = "el" href = "#af9a3081e827ba140edc64fda2e93ee96" > ps3_encrypt_sector< / a > (const uint8_t disc_key[16], uint64_t sector_num, uint8_t *data, uint32_t length)< / td > < / tr >
< tr class = "memdesc:af9a3081e827ba140edc64fda2e93ee96" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Encrypt a sector using PS3 disc encryption (AES-128-CBC). < br / > < / td > < / tr >
< tr class = "memitem:af7ff1fb41dd6ad9c3449d7c48bc5a462" id = "r_af7ff1fb41dd6ad9c3449d7c48bc5a462" > < td class = "memItemLeft" > void  < / td > < td class = "memItemRight" > < a class = "el" href = "#af7ff1fb41dd6ad9c3449d7c48bc5a462" > ps3_decrypt_sector< / a > (const uint8_t disc_key[16], uint64_t sector_num, uint8_t *data, uint32_t length)< / td > < / tr >
< tr class = "memdesc:af7ff1fb41dd6ad9c3449d7c48bc5a462" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Decrypt a sector using PS3 disc encryption (AES-128-CBC). < br / > < / td > < / tr >
< tr class = "memitem:a8c99822e07011d07362d5d40487eded6" id = "r_a8c99822e07011d07362d5d40487eded6" > < td class = "memItemLeft" > void  < / td > < td class = "memItemRight" > < a class = "el" href = "#a8c99822e07011d07362d5d40487eded6" > ps3_lazy_init< / a > (< a class = "el" href = "structaaruformat__context.html" > aaruformat_context< / a > *ctx)< / td > < / tr >
< tr class = "memdesc:a8c99822e07011d07362d5d40487eded6" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Lazy-initialize PS3 encryption state from context media tags. < br / > < / td > < / tr >
< / table >
< a name = "doc-func-members" id = "doc-func-members" > < / a > < h2 id = "header-doc-func-members" class = "groupheader" > Function Documentation< / h2 >
< a id = "af7ff1fb41dd6ad9c3449d7c48bc5a462" name = "af7ff1fb41dd6ad9c3449d7c48bc5a462" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af7ff1fb41dd6ad9c3449d7c48bc5a462" > ◆   < / a > < / span > ps3_decrypt_sector()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void ps3_decrypt_sector < / td >
< td > (< / td >
< td class = "paramtype" > const uint8_t< / td > < td class = "paramname" > < span class = "paramname" > < em > disc_key< / em > < / span > [16], < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint64_t< / td > < td class = "paramname" > < span class = "paramname" > < em > sector_num< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint8_t *< / td > < td class = "paramname" > < span class = "paramname" > < em > data< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint32_t< / td > < td class = "paramname" > < span class = "paramname" > < em > length< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Decrypt a sector using PS3 disc encryption (AES-128-CBC). < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > disc_key< / td > < td > 16-byte disc key. < / td > < / tr >
< tr > < td class = "paramname" > sector_num< / td > < td > Sector number (for IV derivation). < / td > < / tr >
< tr > < td class = "paramname" > data< / td > < td > Buffer to decrypt in-place. < / td > < / tr >
< tr > < td class = "paramname" > length< / td > < td > Number of bytes (must be multiple of 16). < / td > < / tr >
< / table >
< / dd >
< / dl >
< p class = "definition" > Definition at line < a class = "el" href = "ps3__crypto_8c_source.html#l00063" > 63< / a > of file < a class = "el" href = "ps3__crypto_8c_source.html" > ps3_crypto.c< / a > .< / p >
2026-10-08 20:15:08 +01:00
< p class = "reference" > References < a class = "el" href = "aes128_8c_source.html#l00290" > aes128_cbc_decrypt()< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00063" > ps3_decrypt_sector()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00045" > ps3_derive_iv()< / a > .< / p >
2026-04-11 23:17:09 +01:00
2026-10-08 20:15:08 +01:00
< p class = "reference" > Referenced by < a class = "el" href = "write_8c_source.html#l00152" > aaruf_write_sector()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00063" > ps3_decrypt_sector()< / a > .< / p >
2026-04-11 23:17:09 +01:00
< / div >
< / div >
< a id = "a8ee401b8bd7370fef44a5cfdcf361ee6" name = "a8ee401b8bd7370fef44a5cfdcf361ee6" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a8ee401b8bd7370fef44a5cfdcf361ee6" > ◆   < / a > < / span > ps3_derive_disc_key()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void ps3_derive_disc_key < / td >
< td > (< / td >
< td class = "paramtype" > const uint8_t< / td > < td class = "paramname" > < span class = "paramname" > < em > data1< / em > < / span > [16], < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint8_t< / td > < td class = "paramname" > < span class = "paramname" > < em > disc_key< / em > < / span > [16]  )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Derive a PS3 disc key from a data1 key. < / p >
< p > disc_key = AES-128-CBC-Encrypt(PS3_ERK, PS3_ERK_IV, data1)< / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > data1< / td > < td > 16-byte data1 key (from disc or IRD). < / td > < / tr >
< tr > < td class = "paramname" > disc_key< / td > < td > Output: 16-byte derived disc key. < / td > < / tr >
< / table >
< / dd >
< / dl >
< p class = "definition" > Definition at line < a class = "el" href = "ps3__crypto_8c_source.html#l00039" > 39< / a > of file < a class = "el" href = "ps3__crypto_8c_source.html" > ps3_crypto.c< / a > .< / p >
2026-10-08 20:15:08 +01:00
< p class = "reference" > References < a class = "el" href = "aes128_8c_source.html#l00274" > aes128_cbc_encrypt()< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00039" > ps3_derive_disc_key()< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00032" > PS3_ERK< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00036" > PS3_ERK_IV< / a > .< / p >
2026-04-11 23:17:09 +01:00
2026-10-08 20:15:08 +01:00
< p class = "reference" > Referenced by < a class = "el" href = "ps3__crypto_8c_source.html#l00039" > ps3_derive_disc_key()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00070" > ps3_lazy_init()< / a > .< / p >
2026-04-11 23:17:09 +01:00
< / div >
< / div >
< a id = "a9c59bc8ce8ecd8457a8eb62287b09915" name = "a9c59bc8ce8ecd8457a8eb62287b09915" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a9c59bc8ce8ecd8457a8eb62287b09915" > ◆   < / a > < / span > ps3_derive_iv()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void ps3_derive_iv < / td >
< td > (< / td >
< td class = "paramtype" > uint64_t< / td > < td class = "paramname" > < span class = "paramname" > < em > sector_num< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint8_t< / td > < td class = "paramname" > < span class = "paramname" > < em > iv< / em > < / span > [16]  )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Derive the per-sector AES IV from a sector number. < / p >
< p > IV = sector number as 128-bit big-endian integer, zero-padded left.< / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > sector_num< / td > < td > Sector number. < / td > < / tr >
< tr > < td class = "paramname" > iv< / td > < td > Output: 16-byte IV buffer. < / td > < / tr >
< / table >
< / dd >
< / dl >
< p class = "definition" > Definition at line < a class = "el" href = "ps3__crypto_8c_source.html#l00045" > 45< / a > of file < a class = "el" href = "ps3__crypto_8c_source.html" > ps3_crypto.c< / a > .< / p >
2026-10-08 20:15:08 +01:00
< p class = "reference" > References < a class = "el" href = "ps3__crypto_8c_source.html#l00045" > ps3_derive_iv()< / a > .< / p >
< p class = "reference" > Referenced by < a class = "el" href = "ps3__crypto_8c_source.html#l00063" > ps3_decrypt_sector()< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00045" > ps3_derive_iv()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00056" > ps3_encrypt_sector()< / a > .< / p >
2026-04-11 23:17:09 +01:00
< / div >
< / div >
< a id = "af9a3081e827ba140edc64fda2e93ee96" name = "af9a3081e827ba140edc64fda2e93ee96" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af9a3081e827ba140edc64fda2e93ee96" > ◆   < / a > < / span > ps3_encrypt_sector()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void ps3_encrypt_sector < / td >
< td > (< / td >
< td class = "paramtype" > const uint8_t< / td > < td class = "paramname" > < span class = "paramname" > < em > disc_key< / em > < / span > [16], < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint64_t< / td > < td class = "paramname" > < span class = "paramname" > < em > sector_num< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint8_t *< / td > < td class = "paramname" > < span class = "paramname" > < em > data< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint32_t< / td > < td class = "paramname" > < span class = "paramname" > < em > length< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Encrypt a sector using PS3 disc encryption (AES-128-CBC). < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > disc_key< / td > < td > 16-byte disc key. < / td > < / tr >
< tr > < td class = "paramname" > sector_num< / td > < td > Sector number (for IV derivation). < / td > < / tr >
< tr > < td class = "paramname" > data< / td > < td > Buffer to encrypt in-place. < / td > < / tr >
< tr > < td class = "paramname" > length< / td > < td > Number of bytes (must be multiple of 16). < / td > < / tr >
< / table >
< / dd >
< / dl >
< p class = "definition" > Definition at line < a class = "el" href = "ps3__crypto_8c_source.html#l00056" > 56< / a > of file < a class = "el" href = "ps3__crypto_8c_source.html" > ps3_crypto.c< / a > .< / p >
2026-10-08 20:15:08 +01:00
< p class = "reference" > References < a class = "el" href = "aes128_8c_source.html#l00274" > aes128_cbc_encrypt()< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00045" > ps3_derive_iv()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00056" > ps3_encrypt_sector()< / a > .< / p >
2026-04-11 23:17:09 +01:00
2026-10-08 20:15:08 +01:00
< p class = "reference" > Referenced by < a class = "el" href = "read_8c_source.html#l00352" > aaruf_read_sector()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00056" > ps3_encrypt_sector()< / a > .< / p >
2026-04-11 23:17:09 +01:00
< / div >
< / div >
< a id = "a8c99822e07011d07362d5d40487eded6" name = "a8c99822e07011d07362d5d40487eded6" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a8c99822e07011d07362d5d40487eded6" > ◆   < / a > < / span > ps3_lazy_init()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void ps3_lazy_init < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "structaaruformat__context.html" > aaruformat_context< / a > *< / td > < td class = "paramname" > < span class = "paramname" > < em > ctx< / em > < / span > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Lazy-initialize PS3 encryption state from context media tags. < / p >
< p > Reads kMediaTagPs3DiscKey and kMediaTagPs3EncryptionMap from the context's media tag hash table. Safe to call multiple times (no-op after first init). On failure, leaves fields NULL so callers degrade gracefully.< / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > ctx< / td > < td > The aaruformat context. < / td > < / tr >
< / table >
< / dd >
< / dl >
< p class = "definition" > Definition at line < a class = "el" href = "ps3__crypto_8c_source.html#l00070" > 70< / a > of file < a class = "el" href = "ps3__crypto_8c_source.html" > ps3_crypto.c< / a > .< / p >
2026-10-08 20:15:08 +01:00
< p class = "reference" > References < a class = "el" href = "context_8h_source.html#l00126" > mediaTagEntry::data< / a > , < a class = "el" href = "aaru_8h_source.html#l01081" > kMediaTagPs3Data1< / a > , < a class = "el" href = "aaru_8h_source.html#l01080" > kMediaTagPs3DiscKey< / a > , < a class = "el" href = "aaru_8h_source.html#l01084" > kMediaTagPs3EncryptionMap< / a > , < a class = "el" href = "context_8h_source.html#l00128" > mediaTagEntry::length< / a > , < a class = "el" href = "context_8h_source.html#l00274" > aaruformat_context::mediaTags< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00039" > ps3_derive_disc_key()< / a > , < a class = "el" href = "ps3__encryption__map_8c_source.html#l00117" > ps3_deserialize_encryption_map()< / a > , < a class = "el" href = "context_8h_source.html#l00357" > aaruformat_context::ps3_disc_key< / a > , < a class = "el" href = "ps3__crypto_8c_source.html#l00070" > ps3_lazy_init()< / a > , < a class = "el" href = "context_8h_source.html#l00359" > aaruformat_context::ps3_plaintext_region_count< / a > , and < a class = "el" href = "context_8h_source.html#l00358" > aaruformat_context::ps3_plaintext_regions< / a > .< / p >
2026-04-11 23:17:09 +01:00
2026-10-08 20:15:08 +01:00
< p class = "reference" > Referenced by < a class = "el" href = "read_8c_source.html#l00352" > aaruf_read_sector()< / a > , < a class = "el" href = "write_8c_source.html#l00152" > aaruf_write_sector()< / a > , and < a class = "el" href = "ps3__crypto_8c_source.html#l00070" > ps3_lazy_init()< / a > .< / p >
2026-04-11 23:17:09 +01:00
< / div >
< / div >
< / div > <!-- contents -->
< / div > <!-- doc - content -->
< div id = "page-nav" class = "page-nav-panel" >
< div id = "page-nav-resize-handle" > < / div >
< div id = "page-nav-tree" >
< div id = "page-nav-contents" >
< / div > <!-- page - nav - contents -->
< / div > <!-- page - nav - tree -->
< / div > <!-- page - nav -->
< / div > <!-- container -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" > < a href = "dir_68267d1309a1af8e8297ef4c3efbcdba.html" > src< / a > < / li > < li class = "navelem" > < a href = "dir_334a95085ca661c6475619df5f6eaf52.html" > ps3< / a > < / li > < li class = "navelem" > < a href = "ps3__crypto_8h.html" > ps3_crypto.h< / a > < / li >
2026-10-08 20:15:08 +01:00
< li class = "footer" > Generated by < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.18.0 < / li >
2026-04-11 23:17:09 +01:00
< / ul >
< / div >
< / body >
< / html >