{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,23]],"date-time":"2026-08-23T14:30:46Z","timestamp":1787495446229,"version":"build-2736575974"},"publisher-location":"Singapore","reference-count":34,"publisher":"Springer Nature Singapore","isbn-type":[{"value":"9789819248049","type":"print"},{"value":"9789819248056","type":"electronic"}],"license":[{"start":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T00:00:00Z","timestamp":1787529600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T00:00:00Z","timestamp":1787529600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2027]]},"DOI":"10.1007\/978-981-92-4805-6_2","type":"book-chapter","created":{"date-parts":[[2026,8,23]],"date-time":"2026-08-23T13:45:40Z","timestamp":1787492740000},"page":"18-33","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["obliv-clang: Real-World Oblivious Programming in\u00a0C++"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0009-0000-3366-3722","authenticated-orcid":false,"given":"Yunqian","family":"Luo","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8433-7281","authenticated-orcid":false,"given":"Mingyu","family":"Gao","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2026,8,24]]},"reference":[{"key":"2_CR1","doi-asserted-by":"crossref","unstructured":"Almeida, J.B., et al.: Jasmin: high-assurance and high-speed cryptography. In: ACM SIGSAC Conference on Computer and Communications Security (CCS), pp. 1807\u20131823 (2017)","DOI":"10.1145\/3133956.3134078"},{"key":"2_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"489","DOI":"10.1007\/978-3-642-34931-7_28","volume-title":"Progress in Cryptology - INDOCRYPT 2012","author":"J-P Aumasson","year":"2012","unstructured":"Aumasson, J.-P., Bernstein, D.J.: SipHash: a fast short-input PRF. In: Galbraith, S., Nandi, M. (eds.) INDOCRYPT 2012. LNCS, vol. 7668, pp. 489\u2013508. Springer, Heidelberg (2012). https:\/\/doi.org\/10.1007\/978-3-642-34931-7_28"},{"key":"2_CR3","doi-asserted-by":"crossref","unstructured":"Blanton, M., Steele, A., Alisagari, M.: Data-oblivious graph algorithms for secure computation and outsourcing. In: ACM SIGSAC Symposium on Information, Computer and Communications Security (ASIA CCS), p.\u00a0207 (2013)","DOI":"10.1145\/2484313.2484341"},{"key":"2_CR4","unstructured":"Bulck, J.V., Weichbrodt, N., Kapitza, R., Piessens, F., Strackx, R.: Telling your secrets without page faults: stealthy page table-based attacks on enclaved execution. In: USENIX Security Symposium, pp. 1041\u20131056 (2017)"},{"key":"2_CR5","doi-asserted-by":"crossref","unstructured":"Cauligi, S., et al.: FaCT: a DSL for timing-sensitive computation. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 174\u2013189 (2019)","DOI":"10.1145\/3314221.3314605"},{"key":"2_CR6","unstructured":"Clang-Tidy \u2014 Extra Clang Tools 18.0.0git Documentation (2023). https:\/\/clang.llvm.org\/extra\/clang-tidy\/"},{"key":"2_CR7","unstructured":"What is Clangd? (2023). https:\/\/clangd.llvm.org\/"},{"key":"2_CR8","doi-asserted-by":"crossref","unstructured":"Disselkoen, C., Cauligi, S., Tullsen, D., Stefan, D.: Finding and eliminating timing side-channels in crypto code with pitchfork. In: SRC TECHCON (2020)","DOI":"10.1145\/3395651"},{"key":"2_CR9","unstructured":"Gonzalez, S.: TinyJPEG (2022)"},{"key":"2_CR10","doi-asserted-by":"crossref","unstructured":"G\u00f6tzfried, J., Eckert, M., Schinzel, S., M\u00fcller, T.: Cache attacks on intel SGX. In: European Workshop on Systems Security (EuroSec), pp. 1\u20136 (2017)","DOI":"10.1145\/3065913.3065915"},{"key":"2_CR11","doi-asserted-by":"crossref","unstructured":"Jang, Y., Lee, J., Lee, S., Kim, T.: SGX-Bomb: locking down the processor via rowhammer attack. In: Workshop on System Software for Trusted Execution (SysTEX), pp.\u00a01\u20136 (2017)","DOI":"10.1145\/3152701.3152709"},{"key":"2_CR12","unstructured":"Lee, S., Shih, M.W., Gera, P., Kim, T., Kim, H., Peinado, M.: Inferring fine-grained control flow inside SGX enclaves with branch shadowing. In: USENIX Security Symposium, pp. 557\u2013574 (2017)"},{"key":"2_CR13","doi-asserted-by":"crossref","unstructured":"Lipp, M., et al.: PLATYPUS: software-based power side-channel attacks on X86. In: IEEE Symposium on Security and Privacy (S&P), pp. 355\u2013371 (2021)","DOI":"10.1109\/SP40001.2021.00063"},{"key":"2_CR14","doi-asserted-by":"crossref","unstructured":"Liu, C., Hicks, M., Shi, E.: Memory trace oblivious program execution. In: IEEE Computer Security Foundations Symposium (CSF), pp. 51\u201365 (2013)","DOI":"10.1109\/CSF.2013.11"},{"key":"2_CR15","doi-asserted-by":"crossref","unstructured":"Liu, C., Wang, X.S., Nayak, K., Huang, Y., Shi, E.: ObliVM: a programming framework for secure computation. In: IEEE Symposium on Security and Privacy (S&P), pp. 359\u2013376 (2015)","DOI":"10.1109\/SP.2015.29"},{"key":"2_CR16","unstructured":"Luo, Y., Gao, M.: obliv-clang: Real-World Oblivious Programming in C++ (Extended Version). arXiv preprint cs.PL\/2606.16187 (2026). https:\/\/arxiv.org\/abs\/2606.16187"},{"key":"2_CR17","unstructured":"LZ4 - Extremely Fast Compression (2023). https:\/\/lz4.org\/"},{"key":"2_CR18","doi-asserted-by":"crossref","unstructured":"Ohrimenko, O., Goodrich, M.T., Tamassia, R., Upfal, E.: The Melbourne Shuffle: Improving Oblivious Storage in the Cloud (2014)","DOI":"10.1007\/978-3-662-43951-7_47"},{"key":"2_CR19","unstructured":"Rane, A., Lin, C., Tiwari, M.: Raccoon: closing digital side-channels through obfuscated execution. In: USENIX Security Symposium, pp. 431\u2013446 (2015)"},{"key":"2_CR20","doi-asserted-by":"crossref","unstructured":"Reparaz, O., Balasch, J., Verbauwhede, I.: Dude, is My Code Constant Time? (2016)","DOI":"10.23919\/DATE.2017.7927267"},{"issue":"1","key":"2_CR21","doi-asserted-by":"publisher","first-page":"43","DOI":"10.1016\/j.diin.2019.03.002","volume":"29","author":"A Sayakkara","year":"2019","unstructured":"Sayakkara, A., Le-Khac, N.A., Scanlon, M.: A survey of electromagnetic side-channel attacks and discussion on their case-progressing potential for digital forensics. Digit. Investig. 29(1), 43\u201354 (2019)","journal-title":"Digit. Investig."},{"key":"2_CR22","doi-asserted-by":"crossref","unstructured":"Shih, M.W., Lee, S., Kim, T., Peinado, M.: T-SGX: eradicating controlled-channel attacks against enclave programs. In: Network and Distributed System Security Symposium (NDSS). Internet Society, San Diego, CA (2017)","DOI":"10.14722\/ndss.2017.23193"},{"key":"2_CR23","doi-asserted-by":"crossref","unstructured":"Shinde, S., Chua, Z.L., Narayanan, V., Saxena, P.: Preventing page faults from telling your secrets. In: ACM Asia Conference on Computer and Communications Security (ASIA CCS), pp. 317\u2013328 (2016)","DOI":"10.1145\/2897845.2897885"},{"key":"2_CR24","doi-asserted-by":"crossref","unstructured":"Sinha, R., Rajamani, S., Seshia, S.A.: A compiler and verifier for page access oblivious computation. In: Joint Meeting on Foundations of Software Engineering (ESEC\/FSE), pp. 649\u2013660 (2017)","DOI":"10.1145\/3106237.3106248"},{"key":"2_CR25","unstructured":"Son, J., Prechter, G., Poddar, R., Popa, R.A., Sen, K.: ObliCheck: efficient verification of oblivious algorithms with unobservable state. In: USENIX Security Symposium (2021)"},{"key":"2_CR26","unstructured":"Sprenkels, D.: LLVM Provides No Side-Channel Resistance (2019). https:\/\/dsprenkels.com\/cmov-conversion.html"},{"key":"2_CR27","unstructured":"SQLite Home Page (2023). https:\/\/www.sqlite.org\/index.html"},{"issue":"4","key":"2_CR28","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3177872","volume":"65","author":"E Stefanov","year":"2018","unstructured":"Stefanov, E., et al.: Path ORAM: an extremely simple oblivious RAM protocol. J. ACM (JACM) 65(4), 1\u201326 (2018)","journal-title":"J. ACM (JACM)"},{"key":"2_CR29","unstructured":"The C++ Standards Committee: C++ Standard Draft Sources (2022). https:\/\/github.com\/cplusplus\/draft"},{"key":"2_CR30","unstructured":"Vaillant, L.: Monocypher (2023). https:\/\/monocypher.org\/"},{"key":"2_CR31","unstructured":"Van Bulck, J., et al.: Foreshadow: extracting the keys to the intel SGX kingdom with transient out-of-order execution. In: USENIX Security Symposium, pp. 991\u20131008 (2018)"},{"key":"2_CR32","doi-asserted-by":"crossref","unstructured":"Wang, X.S., et al.: Oblivious data structures. In: ACM SIGSAC Conference on Computer and Communications Security (CCS), pp. 215\u2013226 (2014)","DOI":"10.1145\/2660267.2660314"},{"key":"2_CR33","unstructured":"Zahur, S., Evans, D.: Obliv-C: A Language for Extensible Data-Oblivious Computation (2015)"},{"key":"2_CR34","unstructured":"Zhang, Z., Barthe, G.: CT-LLVM: Automatic Large-Scale Constant-Time Analysis. Cryptology ePrint Archive, Report 2025\/338 (2025)"}],"container-title":["Lecture Notes in Computer Science","Advanced Parallel Processing Technologies"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-981-92-4805-6_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,23]],"date-time":"2026-08-23T13:45:43Z","timestamp":1787492743000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-981-92-4805-6_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,8,24]]},"ISBN":["9789819248049","9789819248056"],"references-count":34,"URL":"https:\/\/doi.org\/10.1007\/978-981-92-4805-6_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,8,24]]},"assertion":[{"value":"24 August 2026","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"APPT","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Advanced Parallel Processing Technologies","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Brussels","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Belgium","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2026","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"27 July 2026","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"27 July 2026","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"17","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"appt2026","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.appt-conference.com\/2026","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}