@@ -134,6 +134,30 @@ class KnownOpenSSLHashAlgorithmExpr extends Expr instanceof KnownOpenSSLAlgorith
134
134
}
135
135
}
136
136
137
+ class KnownOpenSSLMACAlgorithmExpr extends Expr instanceof KnownOpenSSLAlgorithmExpr {
138
+ KnownOpenSSLMACAlgorithmExpr ( ) { resolveAlgorithmFromExpr ( this , _, "MAC" ) }
139
+ }
140
+
141
+ class KnownOpenSSLHMACAlgorithmExpr extends Expr instanceof KnownOpenSSLMACAlgorithmExpr {
142
+ KnownOpenSSLHMACAlgorithmExpr ( ) { resolveAlgorithmFromExpr ( this , "HMAC" , "MAC" ) }
143
+
144
+ /**
145
+ * Gets an explicit cipher algorithm for this MAC algorithm.
146
+ * This occurs when the MAC specifies the algorithm at the same time "HMAC-SHA-256"
147
+ */
148
+ KnownOpenSSLHashAlgorithmExpr getExplicitHashAlgorithm ( ) { result = this }
149
+ }
150
+
151
+ class KnownOpenSSLCMACAlgorithmExpr extends Expr instanceof KnownOpenSSLMACAlgorithmExpr {
152
+ KnownOpenSSLCMACAlgorithmExpr ( ) { resolveAlgorithmFromExpr ( this , "CMAC" , "MAC" ) }
153
+
154
+ /**
155
+ * Gets an explicit cipher algorithm for this MAC algorithm.
156
+ * This occurs when the MAC specifies the algorithm at the same time "HMAC-SHA-256"
157
+ */
158
+ KnownOpenSSLCipherAlgorithmExpr getExplicitCipherAlgorithm ( ) { result = this }
159
+ }
160
+
137
161
class KnownOpenSSLEllipticCurveAlgorithmExpr extends Expr instanceof KnownOpenSSLAlgorithmExpr {
138
162
KnownOpenSSLEllipticCurveAlgorithmExpr ( ) { resolveAlgorithmFromExpr ( this , _, "ELLIPTIC_CURVE" ) }
139
163
}
@@ -946,6 +970,8 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
946
970
or
947
971
name = "id-alg-dh-sig-hmac-sha1" and nid = 325 and normalized = "DH" and algType = "KEY_AGREEMENT"
948
972
or
973
+ name = "id-alg-dh-sig-hmac-sha1" and nid = 325 and normalized = "HMAC" and algType = "MAC"
974
+ or
949
975
name = "aes-128-ofb" and nid = 420 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION"
950
976
or
951
977
name = "aes-128-ofb" and nid = 420 and normalized = "OFB" and algType = "BLOCK_MODE"
@@ -1124,8 +1150,12 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1124
1150
or
1125
1151
name = "hmac-md5" and nid = 780 and normalized = "MD5" and algType = "HASH"
1126
1152
or
1153
+ name = "hmac-md5" and nid = 780 and normalized = "HMAC" and algType = "HASH"
1154
+ or
1127
1155
name = "hmac-sha1" and nid = 781 and normalized = "SHA1" and algType = "HASH"
1128
1156
or
1157
+ name = "hmac-sha1" and nid = 781 and normalized = "HMAC" and algType = "MAC"
1158
+ or
1129
1159
name = "md_gost94" and nid = 809 and normalized = "GOST94" and algType = "HASH"
1130
1160
or
1131
1161
name = "gost94" and nid = 812 and normalized = "GOST94" and algType = "HASH"
@@ -1200,10 +1230,14 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1200
1230
or
1201
1231
name = "rc4-hmac-md5" and nid = 915 and normalized = "MD5" and algType = "HASH"
1202
1232
or
1233
+ name = "rc4-hmac-md5" and nid = 915 and normalized = "HMAC" and algType = "MAC"
1234
+ or
1203
1235
name = "rc4-hmac-md5" and nid = 915 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION"
1204
1236
or
1205
1237
name = "aes-128-cbc-hmac-sha1" and nid = 916 and normalized = "SHA1" and algType = "HASH"
1206
1238
or
1239
+ name = "aes-128-cbc-hmac-sha1" and nid = 916 and normalized = "HMAC" and algType = "MAC"
1240
+ or
1207
1241
name = "aes-128-cbc-hmac-sha1" and
1208
1242
nid = 916 and
1209
1243
normalized = "AES-128" and
@@ -1213,6 +1247,8 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1213
1247
or
1214
1248
name = "aes-192-cbc-hmac-sha1" and nid = 917 and normalized = "SHA1" and algType = "HASH"
1215
1249
or
1250
+ name = "aes-192-cbc-hmac-sha1" and nid = 917 and normalized = "HMAC" and algType = "MAC"
1251
+ or
1216
1252
name = "aes-192-cbc-hmac-sha1" and
1217
1253
nid = 917 and
1218
1254
normalized = "AES-192" and
@@ -1227,6 +1263,8 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1227
1263
or
1228
1264
name = "aes-256-cbc-hmac-sha1" and nid = 918 and normalized = "CBC" and algType = "BLOCK_MODE"
1229
1265
or
1266
+ name = "aes-256-cbc-hmac-sha1" and nid = 918 and normalized = "HMAC" and algType = "MAC"
1267
+ or
1230
1268
name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "SHA-256" and algType = "HASH"
1231
1269
or
1232
1270
name = "aes-128-cbc-hmac-sha256" and
@@ -1238,6 +1276,8 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1238
1276
or
1239
1277
name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "SHA-256" and algType = "HASH"
1240
1278
or
1279
+ name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "HMAC" and algType = "MAC"
1280
+ or
1241
1281
name = "aes-192-cbc-hmac-sha256" and
1242
1282
nid = 949 and
1243
1283
normalized = "AES-192" and
@@ -1247,6 +1287,8 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1247
1287
or
1248
1288
name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "SHA-256" and algType = "HASH"
1249
1289
or
1290
+ name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "HMAC" and algType = "MAC"
1291
+ or
1250
1292
name = "aes-256-cbc-hmac-sha256" and
1251
1293
nid = 950 and
1252
1294
normalized = "AES-256" and
@@ -1286,6 +1328,11 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1286
1328
normalized = "CAMELLIA-128" and
1287
1329
algType = "SYMMETRIC_ENCRYPTION"
1288
1330
or
1331
+ name = "camellia-128-cmac" and
1332
+ nid = 964 and
1333
+ normalized = "CMAC" and
1334
+ algType = "MAC"
1335
+ or
1289
1336
name = "camellia-192-gcm" and
1290
1337
nid = 965 and
1291
1338
normalized = "CAMELLIA-192" and
@@ -1338,6 +1385,11 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1338
1385
normalized = "CAMELLIA-256" and
1339
1386
algType = "SYMMETRIC_ENCRYPTION"
1340
1387
or
1388
+ name = "camellia-256-cmac" and
1389
+ nid = 972 and
1390
+ normalized = "CMAC" and
1391
+ algType = "MAC"
1392
+ or
1341
1393
name = "id-scrypt" and nid = 973 and normalized = "SCRYPT" and algType = "KEY_DERIVATION"
1342
1394
or
1343
1395
name = "gost89-cnt-12" and
@@ -1351,11 +1403,13 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1351
1403
or
1352
1404
name = "md_gost12_512" and nid = 983 and normalized = "GOST" and algType = "HASH"
1353
1405
or
1406
+ // TODO: re-evaluate: this is a signing algorithm using hashing and curves
1354
1407
name = "id-tc26-signwithdigest-gost3410-2012-256" and
1355
1408
nid = 985 and
1356
1409
normalized = "GOST34102012" and
1357
1410
algType = "SYMMETRIC_ENCRYPTION"
1358
1411
or
1412
+ // TODO: re-evaluate: this is a signing algorithm using hashing and curves
1359
1413
name = "id-tc26-signwithdigest-gost3410-2012-512" and
1360
1414
nid = 986 and
1361
1415
normalized = "GOST34102012" and
@@ -1364,22 +1418,42 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1364
1418
name = "id-tc26-hmac-gost-3411-2012-256" and
1365
1419
nid = 988 and
1366
1420
normalized = "GOST34112012" and
1367
- algType = "SYMMETRIC_ENCRYPTION"
1421
+ algType = "HASH"
1422
+ or
1423
+ name = "id-tc26-hmac-gost-3411-2012-256" and
1424
+ nid = 988 and
1425
+ normalized = "HMAC" and
1426
+ algType = "MAC"
1368
1427
or
1369
1428
name = "id-tc26-hmac-gost-3411-2012-512" and
1370
1429
nid = 989 and
1371
1430
normalized = "GOST34112012" and
1372
- algType = "SYMMETRIC_ENCRYPTION"
1431
+ algType = "HASH"
1432
+ or
1433
+ name = "id-tc26-hmac-gost-3411-2012-512" and
1434
+ nid = 989 and
1435
+ normalized = "HMAC" and
1436
+ algType = "MAC"
1373
1437
or
1374
1438
name = "id-tc26-agreement-gost-3410-2012-256" and
1375
1439
nid = 992 and
1376
1440
normalized = "GOST34102012" and
1377
- algType = "SYMMETRIC_ENCRYPTION"
1441
+ algType = "ELLIPTIC_CURVE"
1442
+ or
1443
+ name = "id-tc26-agreement-gost-3410-2012-256" and
1444
+ nid = 992 and
1445
+ normalized = "GOST34102012" and
1446
+ algType = "KEY_AGREEMENT"
1378
1447
or
1379
1448
name = "id-tc26-agreement-gost-3410-2012-512" and
1380
1449
nid = 993 and
1381
1450
normalized = "GOST34102012" and
1382
- algType = "SYMMETRIC_ENCRYPTION"
1451
+ algType = "ELLIPTIC_CURVE"
1452
+ or
1453
+ name = "id-tc26-agreement-gost-3410-2012-512" and
1454
+ nid = 993 and
1455
+ normalized = "GOST34102012" and
1456
+ algType = "KEY_AGREEMENT"
1383
1457
or
1384
1458
name = "id-tc26-gost-3410-2012-512-constants" and
1385
1459
nid = 996 and
@@ -1467,12 +1541,20 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
1467
1541
or
1468
1542
name = "hmac-sha3-224" and nid = 1102 and normalized = "SHA3-224" and algType = "HASH"
1469
1543
or
1544
+ name = "hmac-sha3-224" and nid = 1102 and normalized = "HMAC" and algType = "MAC"
1545
+ or
1470
1546
name = "hmac-sha3-256" and nid = 1103 and normalized = "SHA3-256" and algType = "HASH"
1471
1547
or
1548
+ name = "hmac-sha3-256" and nid = 1103 and normalized = "HMAC" and algType = "MAC"
1549
+ or
1472
1550
name = "hmac-sha3-384" and nid = 1104 and normalized = "SHA3-384" and algType = "HASH"
1473
1551
or
1552
+ name = "hmac-sha3-384" and nid = 1104 and normalized = "HMAC" and algType = "MAC"
1553
+ or
1474
1554
name = "hmac-sha3-512" and nid = 1105 and normalized = "SHA3-512" and algType = "HASH"
1475
1555
or
1556
+ name = "hmac-sha3-512" and nid = 1105 and normalized = "HMAC" and algType = "MAC"
1557
+ or
1476
1558
name = "id-dsa-with-sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE"
1477
1559
or
1478
1560
name = "id-dsa-with-sha384" and nid = 1106 and normalized = "SHA-384" and algType = "HASH"
@@ -2240,34 +2322,67 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
2240
2322
normalized = "GOST" and
2241
2323
algType = "SYMMETRIC_ENCRYPTION"
2242
2324
or
2325
+ name = "hmac gost 34.11-2012 256 bit" and
2326
+ nid = 988 and
2327
+ normalized = "HMAC" and
2328
+ algType = "MAC"
2329
+ or
2243
2330
name = "hmac gost 34.11-2012 512 bit" and
2244
2331
nid = 989 and
2245
2332
normalized = "GOST" and
2246
2333
algType = "SYMMETRIC_ENCRYPTION"
2247
2334
or
2335
+ name = "hmac gost 34.11-2012 512 bit" and
2336
+ nid = 989 and
2337
+ normalized = "HMAC" and
2338
+ algType = "MAC"
2339
+ or
2248
2340
name = "hmac gost 34.11-94" and
2249
2341
nid = 810 and
2250
2342
normalized = "GOST" and
2251
2343
algType = "SYMMETRIC_ENCRYPTION"
2252
2344
or
2345
+ name = "hmac gost 34.11-94" and
2346
+ nid = 810 and
2347
+ normalized = "HMAC" and
2348
+ algType = "MAC"
2349
+ or
2253
2350
name = "hmacwithmd5" and nid = 797 and normalized = "MD5" and algType = "HASH"
2254
2351
or
2352
+ name = "hmacwithmd5" and nid = 797 and normalized = "HMAC" and algType = "MAC"
2353
+ or
2255
2354
name = "hmacwithsha1" and nid = 163 and normalized = "SHA1" and algType = "HASH"
2256
2355
or
2356
+ name = "hmacwithsha1" and nid = 163 and normalized = "HMAC" and algType = "MAC"
2357
+ or
2257
2358
name = "hmacwithsha224" and nid = 798 and normalized = "SHA-224" and algType = "HASH"
2258
2359
or
2360
+ name = "hmacwithsha224" and nid = 798 and normalized = "HMAC" and algType = "MAC"
2361
+ or
2259
2362
name = "hmacwithsha256" and nid = 799 and normalized = "SHA-256" and algType = "HASH"
2260
2363
or
2364
+ name = "hmacwithsha256" and nid = 799 and normalized = "HMAC" and algType = "MAC"
2365
+ or
2261
2366
name = "hmacwithsha384" and nid = 800 and normalized = "SHA-384" and algType = "HASH"
2262
2367
or
2368
+ name = "hmacwithsha384" and nid = 800 and normalized = "HMAC" and algType = "MAC"
2369
+ or
2263
2370
name = "hmacwithsha512" and nid = 801 and normalized = "SHA-512" and algType = "HASH"
2264
2371
or
2372
+ name = "hmacwithsha512" and nid = 801 and normalized = "HMAC" and algType = "MAC"
2373
+ or
2265
2374
name = "hmacwithsha512-224" and nid = 1193 and normalized = "SHA-512-224" and algType = "HASH"
2266
2375
or
2376
+ name = "hmacwithsha512-224" and nid = 1193 and normalized = "HMAC" and algType = "MAC"
2377
+ or
2267
2378
name = "hmacwithsha512-256" and nid = 1194 and normalized = "SHA-512-256" and algType = "HASH"
2268
2379
or
2380
+ name = "hmacwithsha512-256" and nid = 1194 and normalized = "HMAC" and algType = "MAC"
2381
+ or
2269
2382
name = "hmacwithsm3" and nid = 1281 and normalized = "SM3" and algType = "HASH"
2270
2383
or
2384
+ name = "hmacwithsm3" and nid = 1281 and normalized = "HMAC" and algType = "MAC"
2385
+ or
2271
2386
name = "id-aes128-ccm" and
2272
2387
nid = 896 and
2273
2388
normalized = "AES-128" and
@@ -2517,12 +2632,20 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
2517
2632
or
2518
2633
name = "id-hmacwithsha3-224" and nid = 1102 and normalized = "SHA3-224" and algType = "HASH"
2519
2634
or
2635
+ name = "id-hmacwithsha3-224" and nid = 1102 and normalized = "HMAC" and algType = "MAC"
2636
+ or
2520
2637
name = "id-hmacwithsha3-256" and nid = 1103 and normalized = "SHA3-256" and algType = "HASH"
2521
2638
or
2639
+ name = "id-hmacwithsha3-256" and nid = 1103 and normalized = "HMAC" and algType = "MAC"
2640
+ or
2522
2641
name = "id-hmacwithsha3-384" and nid = 1104 and normalized = "SHA3-384" and algType = "HASH"
2523
2642
or
2643
+ name = "id-hmacwithsha3-384" and nid = 1104 and normalized = "HMAC" and algType = "MAC"
2644
+ or
2524
2645
name = "id-hmacwithsha3-512" and nid = 1105 and normalized = "SHA3-512" and algType = "HASH"
2525
2646
or
2647
+ name = "id-hmacwithsha3-512" and nid = 1105 and normalized = "HMAC" and algType = "MAC"
2648
+ or
2526
2649
name = "id-regctrl" and nid = 313 and normalized = "CTR" and algType = "BLOCK_MODE"
2527
2650
or
2528
2651
name = "id-smime-alg-3deswrap" and
@@ -3080,4 +3203,8 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized,
3080
3203
algType = "SIGNATURE"
3081
3204
or
3082
3205
name = "sm3withrsaencryption" and nid = 1144 and normalized = "SM3" and algType = "HASH"
3206
+ or
3207
+ name = "hmac" and nid = 855 and normalized = "HMAC" and algType = "MAC"
3208
+ or
3209
+ name = "cmac" and nid = 894 and normalized = "CMAC" and algType = "MAC"
3083
3210
}
0 commit comments