diff --git a/references.bib b/references.bib index 94e7e3e..3e41d45 100644 --- a/references.bib +++ b/references.bib @@ -7,6 +7,118 @@ @inproceedings{Kon2024b url = {https://www.cs-pk.com/sec24-spotproxy-final.pdf}, } +@article{Vines2024c, + author = {Paul Vines and Samuel McKay and Jesse Jenter and Suresh Krishnaswamy}, + title = {Communication Breakdown: Modularizing Application Tunneling for Signaling Around Censorship}, + journal = {Privacy Enhancing Technologies}, + volume = {2024}, + number = {1}, + publisher = {}, + year = {2024}, + url = {https://petsymposium.org/popets/2024/popets-2024-0027.pdf}, +} + +@article{Tang2024a, + author = {Jenny Tang and Léo Alvarez and Arjun Brar and Nguyen Phong Hoang and Nicolas Christin}, + title = {Automatic Generation of Web Censorship Probe Lists}, + journal = {Privacy Enhancing Technologies}, + volume = {2024}, + number = {4}, + publisher = {}, + year = {2024}, + url = {https://petsymposium.org/popets/2024/popets-2024-0106.pdf}, +} + +@inproceedings{Ahmed2024a, + author = {Mohamed Ahmed and Jeffrey Knockel}, + title = {Extended Abstract: The Impact of Online Censorship on {LLMs}}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0006.pdf}, +} + +@inproceedings{Gao2024a, + author = {Tianyu Gao and Ping Ji}, + title = {Extended Abstract: Leveraging Large Language Models to Identify {Internet} Censorship through Network Data}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0007.pdf}, +} + +@inproceedings{Calle2024a, + author = {Paola Calle and Larissa Savitsky and Arjun Nitin Bhagoji and Nguyen Phong Hoang and Shinyoung Cho}, + title = {Toward Automated {DNS} Tampering Detection Using Machine Learning}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0008.pdf}, +} + +@inproceedings{Pu2024a, + author = {Michael Pu and Andrew Wang and Anthony Chang and Kieran Quan and Yi Wei Zhou}, + title = {Exploring {Amazon} Simple Queue Service ({SQS}) for Censorship Circumvention}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0009.pdf}, +} + +@inproceedings{Vilalonga2024a, + author = {Afonso Vilalonga and João S. Resende and Henrique Domingos}, + title = {Looking at the Clouds: Leveraging Pub/Sub Cloud Services for Censorship-Resistant Rendezvous Channels}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0010.pdf}, +} + +@inproceedings{Vines2024b, + author = {Paul Vines}, + title = {Ten Years Gone: Revisiting Cloud Storage Transports to Reduce Censored User Burdens}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0011.pdf}, +} + +@inproceedings{Müller2024a, + author = {Philipp Müller and Niklas Niere and Felix Lange and Juraj Somorovsky}, + title = {Turning Attacks into Advantages: Evading {HTTP} Censorship with {HTTP} Request Smuggling}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0012.pdf}, +} + +@inproceedings{Hanlon2024a, + author = {Michelina Hanlon and Gerry Wan and Anna Ascheman and Zakir Durumeric}, + title = {Detecting {VPN} Traffic through Encapsulated {TCP} Behavior}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0016.pdf}, +} + +@inproceedings{Kujath2024a, + author = {Beau Kujath and Jeffrey Knockel and Paul Aguilar and Diego Morabito and Masashi Crete-Nishihata and Jedidiah R. Crandall}, + title = {Analyzing Prominent Mobile Apps in {Latin America}}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0017.pdf}, +} + +@inproceedings{Ruo2024a, + author = {Samuel Ruo and Jeffrey Knockel and Zoë Reichert}, + title = {Lost in Translation: Characterizing Automated Censorship in Online Translation Services}, + booktitle = {Free and Open Communications on the Internet}, + publisher = {}, + year = {2024}, + url = {https://www.petsymposium.org/foci/2024/foci-2024-0018.pdf}, +} + @inproceedings{Wang2024a, author = {Chenxu Wang and Jiangyi Yin and Zhao Li and Hongbo Xu and Zhongyi Zhang and Qingyun Liu}, title = {Identifying {VPN} Servers through Graph-Represented Behaviors}, @@ -604,7 +716,7 @@ @inproceedings{Basso2021a } @inproceedings{Padmanabhan2021a, - author = {Ramakrishna Padmanabhan and and Arturo Filastò and Maria Xynou and Ram Sundara Raman and Kennedy Middleton and Mingwei Zhang and Doug Madory and Molly Roberts and Alberto Dainotti}, + author = {Ramakrishna Padmanabhan and Arturo Filastò and Maria Xynou and Ram Sundara Raman and Kennedy Middleton and Mingwei Zhang and Doug Madory and Molly Roberts and Alberto Dainotti}, title = {A multi-perspective view of {Internet} censorship in {Myanmar}}, booktitle = {Free and Open Communications on the Internet}, publisher = {ACM}, diff --git a/src/go.mod b/src/go.mod index 3f4fb15..fa0c6be 100644 --- a/src/go.mod +++ b/src/go.mod @@ -2,4 +2,4 @@ module censorbib-go go 1.21.3 -require github.com/nickng/bibtex v1.3.0 +require github.com/nickng/bibtex v1.4.0 diff --git a/src/go.sum b/src/go.sum index 44be713..43d9823 100644 --- a/src/go.sum +++ b/src/go.sum @@ -1,2 +1,2 @@ -github.com/nickng/bibtex v1.3.0 h1:iv0408z8Xe+FEVquJUo8eraXnhrAF0e+2/WayPcism8= -github.com/nickng/bibtex v1.3.0/go.mod h1:4BJ3ka/ZjGVXcHOlkzlRonex6U17L3kW6ICEsygP2bg= +github.com/nickng/bibtex v1.4.0 h1:c5lcFG8RSXE0LrxAlkj9jHpYhzgLLKn2feyrUmiIz8A= +github.com/nickng/bibtex v1.4.0/go.mod h1:4BJ3ka/ZjGVXcHOlkzlRonex6U17L3kW6ICEsygP2bg= diff --git a/src/main.go b/src/main.go index d35de8c..08ffd86 100644 --- a/src/main.go +++ b/src/main.go @@ -13,8 +13,9 @@ import ( "github.com/nickng/bibtex" ) -// Matches e.g.: @inproceedings{Doe2024a, -var re = regexp.MustCompile(`@[a-z]*\{([A-Za-z\-]*[0-9]{4}[a-z]),`) +// Matches e.g.: @inproceedings{Müller2024a, +// \p{L}\p{M} matches any letter, including accented characters. +var re = regexp.MustCompile(`@[a-z]*\{([\"\p{L}\p{M}\-]*[0-9]{4}[a-z]),`) // Map a cite name (e.g., Doe2024a) to its line number in the .bib file. All // cite names are unique. diff --git a/src/vendor/github.com/nickng/bibtex/token.go b/src/vendor/github.com/nickng/bibtex/token.go index 17c451e..f26e32a 100644 --- a/src/vendor/github.com/nickng/bibtex/token.go +++ b/src/vendor/github.com/nickng/bibtex/token.go @@ -29,8 +29,18 @@ func isWhitespace(ch rune) bool { return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' } +func isAccent(ch rune) bool { + accents := "äöüßéêçñÁÉÍÓÚáéíóúàèìòùâêîôûãõñÄÖÜ" + for _, accent := range accents { + if ch == accent { + return true + } + } + return false +} + func isAlpha(ch rune) bool { - return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') + return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') || isAccent(ch) } func isDigit(ch rune) bool { diff --git a/src/vendor/modules.txt b/src/vendor/modules.txt index f1b35c8..03268cc 100644 --- a/src/vendor/modules.txt +++ b/src/vendor/modules.txt @@ -1,3 +1,3 @@ -# github.com/nickng/bibtex v1.3.0 +# github.com/nickng/bibtex v1.4.0 ## explicit; go 1.18 github.com/nickng/bibtex