forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite6bdfd9
committed
Refactor HMAC implementations
Similarly to the cryptohash implementations, this refactors the existingHMAC code into a single set of APIs that can be plugged with any cryptolibraries PostgreSQL is built with (only OpenSSL currently). If thereis no such libraries, a fallback implementation is available. Those newAPIs are designed similarly to the existing cryptohash layer, so thereis no real new design here, with the same logic around buffer boundchecks and memory handling.HMAC has a dependency on cryptohashes, so all the cryptohash typessupported by cryptohash{_openssl}.c can be used with HMAC. Thisrefactoring is an advantage mainly for SCRAM, that included its ownimplementation of HMAC with SHA256 without relying on the existingcrypto libraries even if PostgreSQL was built with their support.This code has been tested on Windows and Linux, with and withoutOpenSSL, across all the versions supported on HEAD from 1.1.1 down to1.0.1. I have also checked that the implementations are working fineusing some sample results, a custom extension of my own, and doingcross-checks across different major versions with SCRAM with the clientand the backend.Author: Michael PaquierReviewed-by: Bruce MomjianDiscussion:https://postgr.es/m/X9m0nkEJEzIPXjeZ@paquier.xyz1 parent1d9c5d0 commite6bdfd9
File tree
18 files changed
+749
-200
lines changed- src
- backend
- libpq
- utils/resowner
- common
- include
- common
- utils
- interfaces/libpq
- tools
- msvc
- pgindent
18 files changed
+749
-200
lines changedLines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
12642 | 12642 |
| |
12643 | 12643 |
| |
12644 | 12644 |
| |
12645 |
| - | |
| 12645 | + | |
12646 | 12646 |
| |
12647 | 12647 |
| |
12648 | 12648 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1258 | 1258 |
| |
1259 | 1259 |
| |
1260 | 1260 |
| |
1261 |
| - | |
| 1261 | + | |
1262 | 1262 |
| |
1263 | 1263 |
| |
1264 | 1264 |
| |
|
Lines changed: 33 additions & 28 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
95 | 95 |
| |
96 | 96 |
| |
97 | 97 |
| |
| 98 | + | |
98 | 99 |
| |
99 | 100 |
| |
100 | 101 |
| |
| |||
1100 | 1101 |
| |
1101 | 1102 |
| |
1102 | 1103 |
| |
1103 |
| - | |
| 1104 | + | |
1104 | 1105 |
| |
1105 | 1106 |
| |
1106 | 1107 |
| |
1107 | 1108 |
| |
1108 | 1109 |
| |
1109 | 1110 |
| |
1110 | 1111 |
| |
1111 |
| - | |
1112 |
| - | |
1113 |
| - | |
1114 |
| - | |
1115 |
| - | |
1116 |
| - | |
1117 |
| - | |
1118 |
| - | |
1119 |
| - | |
1120 |
| - | |
1121 |
| - | |
1122 |
| - | |
1123 |
| - | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
1124 | 1125 |
| |
1125 | 1126 |
| |
1126 | 1127 |
| |
1127 | 1128 |
| |
| 1129 | + | |
| 1130 | + | |
1128 | 1131 |
| |
1129 | 1132 |
| |
1130 | 1133 |
| |
| |||
1359 | 1362 |
| |
1360 | 1363 |
| |
1361 | 1364 |
| |
1362 |
| - | |
| 1365 | + | |
1363 | 1366 |
| |
1364 | 1367 |
| |
1365 |
| - | |
1366 |
| - | |
1367 |
| - | |
1368 |
| - | |
1369 |
| - | |
1370 |
| - | |
1371 |
| - | |
1372 |
| - | |
1373 |
| - | |
1374 |
| - | |
1375 |
| - | |
1376 |
| - | |
1377 |
| - | |
| 1368 | + | |
| 1369 | + | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
1378 | 1381 |
| |
1379 | 1382 |
| |
1380 | 1383 |
| |
1381 | 1384 |
| |
| 1385 | + | |
| 1386 | + | |
1382 | 1387 |
| |
1383 | 1388 |
| |
1384 | 1389 |
| |
|
Lines changed: 61 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
22 | 22 |
| |
23 | 23 |
| |
24 | 24 |
| |
| 25 | + | |
25 | 26 |
| |
26 | 27 |
| |
27 | 28 |
| |
| |||
130 | 131 |
| |
131 | 132 |
| |
132 | 133 |
| |
| 134 | + | |
133 | 135 |
| |
134 | 136 |
| |
135 | 137 |
| |
| |||
178 | 180 |
| |
179 | 181 |
| |
180 | 182 |
| |
| 183 | + | |
181 | 184 |
| |
182 | 185 |
| |
183 | 186 |
| |
| |||
448 | 451 |
| |
449 | 452 |
| |
450 | 453 |
| |
| 454 | + | |
451 | 455 |
| |
452 | 456 |
| |
453 | 457 |
| |
| |||
568 | 572 |
| |
569 | 573 |
| |
570 | 574 |
| |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
571 | 585 |
| |
572 | 586 |
| |
573 | 587 |
| |
| |||
737 | 751 |
| |
738 | 752 |
| |
739 | 753 |
| |
| 754 | + | |
740 | 755 |
| |
741 | 756 |
| |
742 | 757 |
| |
| |||
765 | 780 |
| |
766 | 781 |
| |
767 | 782 |
| |
| 783 | + | |
768 | 784 |
| |
769 | 785 |
| |
770 | 786 |
| |
| |||
1428 | 1444 |
| |
1429 | 1445 |
| |
1430 | 1446 |
| |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + |
Lines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
83 | 83 |
| |
84 | 84 |
| |
85 | 85 |
| |
86 |
| - | |
| 86 | + | |
| 87 | + | |
87 | 88 |
| |
88 | 89 |
| |
89 | 90 |
| |
| 91 | + | |
90 | 92 |
| |
91 | 93 |
| |
92 | 94 |
| |
|
0 commit comments
Comments
(0)