-
Notifications
You must be signed in to change notification settings - Fork 67
/
config.py
282 lines (251 loc) · 12.7 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# Configuration
# for mybibtex, import.py, ...
from string import Template
# List of all conferences, journals, eprint, ...
confs = {}
def add_conf(
key,
full_name="",
name=None,
url="https://dblp.uni-trier.de/db/conf/${namelower}/${namelower}${url_year}${dis}.html",
crossref=None
):
if name is None:
name = key
if crossref is None:
crossref = name.lower()
confs[key] = {
"type":
"conf",
"url": # list of url(s) to retrieve the conf data (from DBLP)
[
Template(url).safe_substitute(namelower=name.lower(), url_year="${year}"),
Template(url).safe_substitute(namelower=name.lower(), url_year="${short_year}")
],
"entry_type": # bibtex entry type to be looked for
"InProceedings",
"key": # prefix of the bib key (ACISP, AC, ...) -> upper case
key,
"name": # name of the conference (ACISP, ASIACRYPT, ...) -> upper case
name,
"crossref": # name for crossref
crossref,
"full_name": # full name of the conference
full_name,
"fields_dblp": # fields to extract from DBLP
{"title", "author", "pages", "doi"},
"fields_add":
{
"crossref": crossref + "${short_year}${dis}"
}
}
def add_journal(
key,
first_year,
journalkey,
full_name="",
months=None,
name=None,
url="https://dblp.uni-trier.de/db/journals/${name}/${name}${volume}.html",
publisher="springer",
):
if name is None:
name = key
if months is None:
months = []
confs[key] = {
"type":
"journal",
"url": # list of url(s) to retrieve the conf data (from DBLP)
[url],
"entry_type": # bibtex entry type to be looked for
"Article",
"key": # prefix of the bib key (ACISP, AC, ...) -> upper case
key,
"name": # name of the conference (ACISP, ASIACRYPT, ...) -> upper case
name,
"full_name": # full name of the conference
full_name,
"first_year": # first year of the journal (used to convert years into volume numbers in import.py)
first_year,
"months": # month from number
months,
"fields_dblp": # fields to extract from DBLP
{"title", "author", "pages", "volume", "year", "number", "doi"},
"fields_add":
{
"publisher": publisher,
"journal": journalkey
}
}
if months:
# if months is a non-empty array
# then the import script will use months[number-1] as month for the publication
confs[key]["fields_add"]["month"] = "%months" # months is used here automatically
def add_misc(
key,
full_name,
url,
name=None,
crossref=None
):
if name is None:
name = key
if crossref is None:
crossref = name.lower()
confs[key] = {
"type":
"misc",
"url": # list of url(s) to retrieve the misc data (currently only EPRINT is supported)
[url],
"entry_type": # bibtex entry type to be looked for
"Misc",
"key": # prefix of the bib key (ACISP, AC, ...) -> upper case
key,
"name": # name of the conference (ACISP, ASIACRYPT, ...) -> upper case
name,
"crossref": # name for crossref (not used yet)
crossref,
"full_name": # full name of the conference (not used yet)
full_name,
"fields_dblp": # not used
set(),
"fields_add": # not used
dict([])
}
add_conf("ACISP", "Australasian Conference on Information Security and Privacy")
# WARNING:
# the URL for ACM CCS 2006 is https://dblp.org/db/conf/ccs/ccs2006usa.html (without the suffix "usa", it is AsiaCCS)
# the URL for ACM CCS 2004 is https://dblp.uni-trier.de/db/conf/ccs/ccs2004p.html (wihtout the suffix "p", it is FMSE)
# These are the only exceptions
# If you want to re-import these conferences, the simplest (dirty) way is to hardcode the URL below
add_conf("CCS", "ACM Conference on Computer and Communications Security",
name="ACM CCS", crossref="ccs",
url="https://dblp.uni-trier.de/db/conf/ccs/ccs${url_year}.html")
add_conf("ACNS", "International Conference on Applied Cryptography and Network Security")
add_conf("AFRICACRYPT", "International Conference on Cryptology in Africa")
add_conf("ASIACCS", "ACM Symposium on Information, Computer and Communications Security",
url="https://dblp.uni-trier.de/db/conf/asiaccs/asiaccs${url_year}.html")
add_conf("AC", "International Conference on the Theory and Application of Cryptology and Information Security",
name="ASIACRYPT")
add_conf("CANS", "International Conference on Cryptology and Network Security")
add_conf("CHES", "Workshop on Cryptographic Hardware and Embedded Systems")
add_conf("COSADE", "International Workshop on Constructive Side-Channel Analysis and Secure Design")
add_conf("CQRE", "International Exhibition and Congress on Network Security", name="CQRE")
# Some CSF ('07-'16) are labeled csfw/csf, remaining csfw/csfw
#
add_conf("CSF", "IEEE Computer Security Foundations Symposium", name="CSF", url="https://dblp.uni-trier.de/db/conf/csfw/csf${url_year}.html")
add_conf("C", "International Cryptology Conference", name="CRYPTO")
add_conf("RSA", "RSA Conference, Cryptographers' Track", name="CT-RSA", crossref="rsa",
url="https://dblp.uni-trier.de/db/conf/ctrsa/ctrsa${url_year}.html")
add_conf("ESORICS", "European Symposium on Research in Computer Security")
add_conf("EC", "International Conference on the Theory and Applications of Cryptographic Techniques",
name="EUROCRYPT")
add_conf("FC", "Financial Cryptography and Data Security")
add_conf("FCW", "Financial Cryptography and Data Security Workshops",
url="https://dblp.uni-trier.de/db/conf/fc/fc${url_year}w.html")
add_conf("FOCS", "Symposium on Foundations of Computer Science")
add_conf("FSE", "International Workshop on Fast Software Encryption")
add_conf("ICALP", "International Colloquium on Automata, Languages and Programming")
add_conf("ICICS", "International Conference on Information and Communications Security")
add_conf("ICISC", "International Conference on Information Security and Cryptology")
add_conf("IMA", "IMA Conference on Cryptography and Coding",url="https://dblp.uni-trier.de/db/conf/ima/imacc${url_year}.html")
add_conf("ICITS", "International Conference on Information Theoretic Security")
add_conf("SP", "IEEE Symposium on Security and Privacy", name="IEEE SP",
url="https://dblp.uni-trier.de/db/conf/sp/sp${url_year}.html", crossref="ieeesp")
add_conf("EUROSP", "IEEE European Symposium on Security and Privacy", name="IEEE EuroSP",
url="https://dblp.uni-trier.de/db/conf/eurosp/eurosp${url_year}.html", crossref="ieeeeurosp")
add_conf("INDOCRYPT", "International Conference on Cryptology in India")
add_conf("ISC", "Information Security Conference",
url="https://dblp.uni-trier.de/db/conf/isw/isc${url_year}.html")
add_conf("ITC", "Information-Theoretic Cryptography",
url="https://dblp.uni-trier.de/db/conf/citc/citc${url_year}.html")
add_conf("ITCS", "Innovations in Theoretical Computer Science",
url="https://dblp.uni-trier.de/db/conf/innovations/innovations${url_year}.html")
add_conf("IWSEC", "International Workshop on Security")
add_conf("LATIN", "Latin American Theoretical Informatics Symposium")
add_conf("LC", "International Conference on Cryptology and Information Security in Latin America",
name="LATINCRYPT")
add_conf("NDSS", "Network and Distributed System Security Symposium")
add_conf("PAIRING", "International Conference on Pairing-based Cryptography", )
add_conf("PETS", "International Symposium on Privacy Enhancing Technologies", url="https://dblp.uni-trier.de/db/conf/pet/pets${url_year}.html")
add_conf("PKC", "International Conference on Practice and Theory in Public Key Cryptography")
add_conf("PODC", "ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing")
add_conf("PQCRYPTO", "International Conference on Post-Quantum Cryptography")
add_conf("PROVSEC", "International Conference on Provable Security")
add_conf("SAC", "Workshop on Selected Areas in Cryptography",
url="https://dblp.uni-trier.de/db/conf/sacrypt/sacrypt${url_year}.html")
add_conf("SCN", "Conference on Security and Cryptography for Networks")
add_conf("SODA", "ACM-SIAM Symposium on Discrete Algorithms")
add_conf("STOC", "ACM Symposium on Theory of Computing")
add_conf("TCC", "Theory of Cryptography Conference")
add_conf("TRUSTBUS", "International Conference on Trust, Privacy & Security in Digital Business")
add_conf("USENIX", "USENIX Security Symposium",
url="https://dblp.uni-trier.de/db/conf/uss/uss${url_year}.html")
add_conf("VIETCRYPT", "International Conference on Cryptology in Vietnam")
add_conf("WISA", "International Workshop on Information Security Applications")
add_journal("JC", 1988, "jcrypto", "Journal of Cryptology",
months=["jan", "apr", "jul", "oct"],
url="https://dblp.uni-trier.de/db/journals/joc/joc${volume}.html")
add_journal("JCEng", 2011, "jcryptoeng", "Journal of Cryptographic Engineering",
months=["apr", "jun", "sep", "nov"],
url="https://dblp.uni-trier.de/db/journals/jce/jce${volume}.html")
add_journal("PoPETS", 2022, "popets", "Proceedings on Privacy Enhancing Technologies",
months=["jan", "apr", "jul", "oct"],
url="https://dblp.uni-trier.de/db/journals/popets/popets${year}.html",
publisher="sciendo")
# Note: PoPETS is now self-publishing!
# add_journal("PoPETS", 2015, "popets", "Proceedings on Privacy Enhancing Technologies",
# months=["jan", "apr", "jul", "oct"],
# url="https://dblp.uni-trier.de/db/journals/popets/popets${year}.html",
# publisher="degruyter")
# Warning: we are not using the import.py script for ToSC
# therefore, some of the fields here are not used
add_journal("ToSC", 2016, "tosc", "Transactions on Symmetric Cryptology",
months=[],
url="https://dblp.uni-trier.de/db/journals/tosc/tosc${year}.html",
publisher="toscpub")
add_journal("TCHES", 2018, "tches", "Transactions on Cryptographic Hardware and Embedded Systems",
months=[],
url="https://dblp.uni-trier.de/db/journals/tches/tches${year}.html",
publisher="tchespub")
add_misc("EPRINT", "Cryptology ePrint Archive", url="https://eprint.iacr.org/complete/compact")
add_journal("DCC", 1933, "dcc", "Designs, Codes and Cryptography",
url="https://dblp.uni-trier.de/db/journals/dcc/dcc${volume}.html")
# Hack: DCC started in 1991, but published between 1995 and 2017 several volumes per year. By setting the start year to 1933, the correct volume is detected correctly after 2018 (incl.). For volumes before 2017 (incl.), the --volume option has to be used.
add_journal("CiC", 2024, "cic", "IACR Communications in Cryptology",
url="https://dblp.uni-trier.de/db/journals/cic/cic${volume}.html", publisher="iacr_pub",)
def get_conf_name(confkey):
if confkey in confs:
return confs[confkey]["name"]
else:
return confkey.upper()
# Missing years for conferences (used by lib.confs_years)
confs_missing_years = {
"AC": {1993, 1995, 1997},
"AFRICACRYPT": {2015, 2021},
"CCS": {1995},
"EC": {1983},
"ESORICS": {1991, 1993, 1995, 1997, 1999, 2001},
"FSE": {1995},
"ICICS": {1998, 2000},
"ICITS": {2010, 2014},
"IMA": {1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018, 2020, 2022},
"ISC": {1998},
"LATIN": {1993, 1994, 1996, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017, 2019, 2021, 2023},
"LC": {2011, 2013, 2016, 2018, 2020, 2022},
"PAIRING": {2011},
"PQCRYPTO": {2009, 2012, 2015},
"SCN": {2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017, 2019, 2021, 2023},
"USENIX": {1994, 1997},
}
# Bibtex output
# keys of entries are sorted in this order: first_keys then alphabetical order
first_keys = ["author", "title", "pages", "editor", "booktitle", "volume", "address", "month", "publisher", "series",
"year", "journal", "number", "doi"]
types = {
"inproceedings": "InProceedings",
"article": "Article",
"proceedings": "Proceedings",
"misc": "Misc"
}