104 Commits

Author SHA1 Message Date
d84ab2734e This is 0.0.12.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4582 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-25 22:31:29 +00:00
4f0cc793c7 mingw64 OpenSSL => 3.1.4.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4581 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-25 21:56:29 +00:00
b7a4ac22b2 OpenSSL => 3.1.4 for iOS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4580 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-25 21:46:16 +00:00
5db9acae1d Android OpenSSL => 3.1.4.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4579 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-25 16:45:38 +00:00
c299c1432c Report more platform names, and clean up blobs on default on iOS like on Android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4578 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-25 16:41:39 +00:00
d8551ab732 sqlite thread safety back on. Trying to fix a weird issue.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4577 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-24 01:34:59 +00:00
25bc1279c2 This is how we bind sqlite variables by index.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4576 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-24 01:27:35 +00:00
f6d9d23456 Test docker before release.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4575 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-24 00:30:07 +00:00
b20d95d616 Ugg, don't clean up just-added app file blobs. Need a better solution for this.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4574 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 19:33:04 +00:00
071c2f1c20 This looks like it could miss files on import.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4573 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 19:25:52 +00:00
566d00f0df Put the native executable in the lib directory, to appease recent R^X requirements, and bump the Android target version back up to 34.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4572 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 18:52:20 +00:00
0550aa4e98 Oh for crying out loud. Android started disallowing executing files from the private data directory in SDK 29.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4571 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 18:07:23 +00:00
baf69355a5 Target android min sdk version 24 (the lowest that libuv claims to support), and specify the target SDK version as 34.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4570 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 17:51:16 +00:00
17c0266998 Lower android min sdk version to 26, and use libuv's random code.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4569 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 17:26:53 +00:00
14a2207064 Add a Server: header.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4568 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 12:44:12 +00:00
7c721fc6eb Add an emoji of the day to gg, and add a tropical fish for reasons.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4567 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-22 00:11:14 +00:00
ab03692a4c Lay out the profile editing form better so it feels less janky.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4566 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-21 21:31:46 +00:00
626fa4f27b Address some lifetime issues in the single-process case.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4565 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-21 19:47:47 +00:00
15676e0f4f Resize on rotation on iOS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4564 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-21 18:32:23 +00:00
8709ce8ad5 Added a missing filesaver.min.js.map file.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4563 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-21 12:53:31 +00:00
bb924d79d6 Bring back logs on macos.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4562 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-21 02:12:27 +00:00
8e075e33d9 Work around log obfuscation on iOS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4561 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-21 00:56:00 +00:00
b0b002104a Updated libbacktrace to latest.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4560 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 20:11:01 +00:00
43d1f34fa3 Build separate arm+x86 android APKs.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4559 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 19:46:20 +00:00
6db1a097aa Add a button in the profile editor to ask the server to follow you. I'm hoping this helps replicating accounts that are otherwise difficult to discover.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4558 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 14:37:24 +00:00
6dae2f0749 Expose the server's public key. Going to use this to make local accounts visible externally and also to make it easy to show the room link.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4557 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 12:55:05 +00:00
dc87c26b99 Missing files.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4556 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 01:40:58 +00:00
234d597083 Bump some android SDK versions.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4555 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 01:10:58 +00:00
b74c347c7c Fix some issues with multiple supported android architectures.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4554 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 00:54:55 +00:00
996996e609 Mention some other platforms in the README.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4553 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 00:25:51 +00:00
cd9050f61f Quiet zsign, and simplify an ifdef chain.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4552 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 00:16:01 +00:00
b70b309977 Fix the windows build, and update its OpenSSL to 3.1.3 like the rest.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4551 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-20 00:13:00 +00:00
ee510f3f3f Got the APK sizes down again.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4550 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 20:21:17 +00:00
8a70b8ea3e Trying to bring the APK size down again.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4549 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 19:47:55 +00:00
27ee73bb89 jshint.js -> jshint.min.js.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4548 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 19:46:48 +00:00
3aeb47e447 Set the iOS app icon.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4547 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 19:21:13 +00:00
b9ceb30ecf Sign when we're building the .app, but only on Linux. Support building .ipa files.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4546 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 19:18:16 +00:00
5b6ee20b2d To make the black bars go away, you have to specify a launch image. Should be a storyboard, but not now.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4545 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 18:52:56 +00:00
d062ec0dfe Helper for building and installing on iOS, because I keep forgetting.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4544 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 18:21:36 +00:00
d5a0daa0d3 Target an old enough iOS version to ignore deprecation issues for now.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4543 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 18:06:32 +00:00
8c4ec71e26 Retry the webkit load until we've connected to the server.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4542 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 18:05:34 +00:00
1e5aa0ba93 Same iOS version min.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4541 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 13:10:34 +00:00
0326a1f8cc Quash these warnings on macos, too.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4540 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 12:41:43 +00:00
8311404a09 More layout and wordsmith-ing of welcome.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4539 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-19 00:53:14 +00:00
c81111c2cf More welcome tweaks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4538 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 20:57:41 +00:00
e499be12ae Welcome updates.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4537 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 20:49:53 +00:00
e785f7f10a A welcome app?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4536 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 18:54:37 +00:00
c3da10bef6 Saving non-UTF8 sort of works.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4535 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 17:51:26 +00:00
c8c8cb305e Fix an android startup crash.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4534 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 16:58:11 +00:00
efdd046ef8 Silence some warnings.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4533 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 14:46:58 +00:00
496eefd2ee Whoops. Fix android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4532 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 14:39:20 +00:00
9da79b3a21 I think I made all build types conditional on having the appropriate build tools available, and make all make everything currently possible.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4531 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-18 14:24:44 +00:00
1b2b0970fb Give android its own main, like ios, so we can deadstrip some things.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4530 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-17 22:43:13 +00:00
0bb45a7fa8 Whoa. Allow building the ios executable on Linux.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4529 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-17 22:25:31 +00:00
15a25a41aa Add some deps I apparently missed.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4528 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-17 22:06:41 +00:00
76b6ff78cd File drag and drop, sort of.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4527 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-17 21:37:42 +00:00
5285b3f222 Fix the build.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4526 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-17 01:30:38 +00:00
0c993c251b Implement prompt, confirm, and query for ios.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4525 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-16 14:16:21 +00:00
b3a1f17452 Add apple.py, fix some global initialization on iOS, and add some missing bundle-related files.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4524 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-16 13:57:40 +00:00
11929e8c68 iOS makefile tweaks to build more .app bundles.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4523 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-15 18:06:31 +00:00
fc9a081250 Need to find an alternative to uv_process_kill when using one process.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4522 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-15 17:43:08 +00:00
2583221117 I guess this works? Not sure what's wrong with AF_UNIX on iOS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4521 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-15 17:42:04 +00:00
a69e551968 Added some questionable support for running everything in one process, because iOS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4520 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-15 17:33:36 +00:00
8bd0027e71 Enough glue to load a web page from our web server in the iOS simulator. Next challenge is uv_spawn: permission denied.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4519 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-15 16:55:25 +00:00
84eaa3e2fd Now it builds for ios with some objective-c.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4518 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-14 02:11:20 +00:00
a57916b3db Link something for iossim.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4517 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-14 01:56:40 +00:00
87e769786a Forgotten file.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4516 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-14 01:37:34 +00:00
05a7e941cf More starting diagnostics on android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4515 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-13 01:14:13 +00:00
ed307e6b3b Oops, don't call xcrun on linux.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4514 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-13 01:13:35 +00:00
e8aa957209 :O This builds an app which brings up the web site in the simulator.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4513 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-13 01:09:15 +00:00
a39f820ff1 Oops.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4512 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-12 01:33:49 +00:00
1c621a602f This builds an executable for ios.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4511 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-12 00:29:17 +00:00
7169f4a6cb ios64-xcrun openssl build.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4510 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-12 00:19:16 +00:00
e202c1a40e Make some buttons bigger.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4509 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-11 19:26:52 +00:00
0f4b4da0aa OpenSSL 3.1.3 built for android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4508 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-11 18:44:50 +00:00
1f96413bd3 A few places I missed tracking busy worker threads.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4507 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-11 16:43:48 +00:00
9695621c91 Lit 3.0.0.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4506 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-11 16:00:38 +00:00
2d67f5ead6 sqlite-amalgamation-3430200.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4505 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-11 15:52:41 +00:00
29d2a45abc Move reading settings from the database off of the main thread. It now happens periodically in a worker, which means I don't think there's anything blocking the main thread anymore.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4504 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-11 15:44:40 +00:00
13c8b05f9a Moved connections DB access to worker threads. I think global settings access is the only remaining thing on the main thread.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4503 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-10 01:11:32 +00:00
2c1a5359c6 Show more context in the Android app when starting the server.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4502 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-10 00:46:17 +00:00
d8530f228e EBT replicate to the worker threads. Almost there.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4501 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-08 16:17:56 +00:00
575f6c2f0a Move blob wants to the worker threads.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4500 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-08 15:40:20 +00:00
62cdc592c0 Move sending history streams to the worker threads.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4499 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-08 15:14:42 +00:00
11373faf23 Log during -t=bench every database access from the main thread.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4498 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-08 14:25:22 +00:00
0473eec0a2 Remove DB work from tf_ssb_notify_message_added, which runs on the main thread.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4497 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-08 13:52:49 +00:00
7fc23dc085 Try all supported ABIs for the executable on Android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4496 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-07 13:01:21 +00:00
c741cc06b2 Exclude the 32-bit executables from the APK for now.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4495 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-07 12:45:45 +00:00
39dbfdec82 If we can't parse the port file, try again. Maybe we are catching it between create and write?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4494 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-07 12:38:30 +00:00
0e5d6056e4 codemirror 5.65.15.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4493 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-05 00:56:26 +00:00
d711993b3b I need to configure libsodium better.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4492 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-05 00:52:59 +00:00
615bf7fe43 Fix the build.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4491 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-05 00:39:57 +00:00
424b9b5a2f libsodium-1.0.19-stable.tar.gz
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4490 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-05 00:32:37 +00:00
d1e494b730 More docs.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4489 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-05 00:24:33 +00:00
623e4b8fff Oh yeah, we're working on 0.0.12.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4488 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-05 00:14:36 +00:00
b5dd1f2f86 Fix macos build again.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4487 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-04 23:41:30 +00:00
ec83f9c747 Fix things building on linux again.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4486 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-04 23:38:42 +00:00
31af27529e This compiles on macos for x86_64, at least.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4485 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-04 23:20:57 +00:00
6302565942 Store app blob history.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4484 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-10-04 22:57:39 +00:00
cda724b2da Some gg snapping fixes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4483 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-09-29 02:27:41 +00:00
c2e2ba2a40 Actually include the 32-bit executables.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4482 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-09-29 00:32:22 +00:00
b5d3f5faa7 This builds for 32-bit android. Untested.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4481 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-09-29 00:07:34 +00:00
71f3910055 More deadstripping.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4480 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-09-28 00:32:52 +00:00
70ed8c3b32 How did these get removed?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4479 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-09-27 22:39:01 +00:00
3519 changed files with 425232 additions and 291922 deletions
MakefileREADME.md
apps
core
deps
codemirror
libbacktrace
libsodium
.github
.gitignoreCITATION.cffChangeLogMakefile.amMakefile.inappveyor.ymlazure-pipelines.yml
build-aux
build.zig
builds
ci
configureconfigure.ac
contrib
dist-build
libsodium.vcxprojlibsodium.vcxproj.filters
m4
msvc-scripts
packaging
regen-msvc
src
Makefile.in
libsodium
Makefile.amMakefile.in
crypto_aead
crypto_core
ed25519
ref10
softaes
crypto_generichash
crypto_hash
crypto_kdf
crypto_onetimeauth
crypto_pwhash
crypto_scalarmult
crypto_sign
ed25519
crypto_stream
crypto_verify
include
randombytes
sodium
test
lit
openssl
android
arm64-v8a
usr
local
include
crypto
internal
openssl
lib
armeabi-v7a
usr
local
include
crypto
internal
openssl
x86
usr
local
include
crypto
internal
openssl
x86_64
usr
local
include
crypto
internal
openssl
lib
ios
ios64-xcrun
usr
local
include
crypto
internal
openssl
lib
iossimulator-xcrun
usr
local
include
crypto
internal
openssl
mingw64
bin
include
lib
share
doc
openssl
html
man1
man3
ADMISSIONS.htmlASN1_INTEGER_get_int64.htmlASN1_ITEM_lookup.htmlASN1_OBJECT_new.htmlASN1_STRING_TABLE_add.htmlASN1_STRING_length.htmlASN1_STRING_new.htmlASN1_STRING_print_ex.htmlASN1_TIME_set.htmlASN1_TYPE_get.htmlASN1_generate_nconf.htmlASYNC_WAIT_CTX_new.htmlASYNC_start_job.htmlBF_encrypt.htmlBIO_ADDR.htmlBIO_ADDRINFO.htmlBIO_connect.htmlBIO_ctrl.htmlBIO_f_base64.htmlBIO_f_buffer.htmlBIO_f_cipher.htmlBIO_f_md.htmlBIO_f_null.htmlBIO_f_ssl.htmlBIO_find_type.htmlBIO_get_data.htmlBIO_get_ex_new_index.htmlBIO_meth_new.htmlBIO_new.htmlBIO_new_CMS.htmlBIO_parse_hostserv.htmlBIO_printf.htmlBIO_push.htmlBIO_read.htmlBIO_s_accept.htmlBIO_s_bio.htmlBIO_s_connect.htmlBIO_s_fd.htmlBIO_s_file.htmlBIO_s_mem.htmlBIO_s_null.htmlBIO_s_socket.htmlBIO_set_callback.htmlBIO_should_retry.htmlBN_BLINDING_new.htmlBN_CTX_new.htmlBN_CTX_start.htmlBN_add.htmlBN_add_word.htmlBN_bn2bin.htmlBN_cmp.htmlBN_copy.htmlBN_generate_prime.htmlBN_mod_inverse.htmlBN_mod_mul_montgomery.htmlBN_mod_mul_reciprocal.htmlBN_new.htmlBN_num_bytes.htmlBN_rand.htmlBN_security_bits.htmlBN_set_bit.htmlBN_swap.htmlBN_zero.htmlBUF_MEM_new.htmlCMS_add0_cert.htmlCMS_add1_recipient_cert.htmlCMS_add1_signer.htmlCMS_compress.htmlCMS_decrypt.htmlCMS_encrypt.htmlCMS_final.htmlCMS_get0_RecipientInfos.htmlCMS_get0_SignerInfos.htmlCMS_get0_type.htmlCMS_get1_ReceiptRequest.htmlCMS_sign.htmlCMS_sign_receipt.htmlCMS_uncompress.htmlCMS_verify.htmlCMS_verify_receipt.htmlCONF_modules_free.htmlCONF_modules_load_file.htmlCRYPTO_THREAD_run_once.htmlCRYPTO_get_ex_new_index.htmlCRYPTO_memcmp.htmlCTLOG_STORE_get0_log_by_id.htmlCTLOG_STORE_new.htmlCTLOG_new.htmlCT_POLICY_EVAL_CTX_new.htmlDEFINE_STACK_OF.htmlDES_random_key.htmlDH_generate_key.htmlDH_generate_parameters.htmlDH_get0_pqg.htmlDH_get_1024_160.htmlDH_meth_new.htmlDH_new.htmlDH_new_by_nid.htmlDH_set_method.htmlDH_size.htmlDSA_SIG_new.htmlDSA_do_sign.htmlDSA_dup_DH.htmlDSA_generate_key.htmlDSA_generate_parameters.htmlDSA_get0_pqg.htmlDSA_meth_new.htmlDSA_new.htmlDSA_set_method.htmlDSA_sign.htmlDSA_size.htmlDTLS_get_data_mtu.htmlDTLS_set_timer_cb.htmlDTLSv1_listen.htmlECDSA_SIG_new.htmlECPKParameters_print.htmlEC_GFp_simple_method.htmlEC_GROUP_copy.htmlEC_GROUP_new.htmlEC_KEY_get_enc_flags.htmlEC_KEY_new.htmlEC_POINT_add.htmlEC_POINT_new.htmlENGINE_add.htmlERR_GET_LIB.htmlERR_clear_error.htmlERR_error_string.htmlERR_get_error.htmlERR_load_crypto_strings.htmlERR_load_strings.htmlERR_print_errors.htmlERR_put_error.htmlERR_remove_state.htmlERR_set_mark.htmlEVP_BytesToKey.htmlEVP_CIPHER_CTX_get_cipher_data.htmlEVP_CIPHER_meth_new.htmlEVP_DigestInit.htmlEVP_DigestSignInit.htmlEVP_DigestVerifyInit.htmlEVP_EncodeInit.htmlEVP_EncryptInit.htmlEVP_MD_meth_new.htmlEVP_OpenInit.htmlEVP_PKEY_ASN1_METHOD.htmlEVP_PKEY_CTX_ctrl.htmlEVP_PKEY_CTX_new.htmlEVP_PKEY_CTX_set1_pbe_pass.htmlEVP_PKEY_CTX_set_hkdf_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_md.htmlEVP_PKEY_CTX_set_scrypt_N.htmlEVP_PKEY_CTX_set_tls1_prf_md.htmlEVP_PKEY_asn1_get_count.htmlEVP_PKEY_cmp.htmlEVP_PKEY_decrypt.htmlEVP_PKEY_derive.htmlEVP_PKEY_encrypt.htmlEVP_PKEY_get_default_digest_nid.htmlEVP_PKEY_keygen.htmlEVP_PKEY_meth_get_count.htmlEVP_PKEY_meth_new.htmlEVP_PKEY_new.htmlEVP_PKEY_print_private.htmlEVP_PKEY_set1_RSA.htmlEVP_PKEY_sign.htmlEVP_PKEY_size.htmlEVP_PKEY_verify.htmlEVP_PKEY_verify_recover.htmlEVP_SealInit.htmlEVP_SignInit.htmlEVP_VerifyInit.htmlEVP_aes.htmlEVP_aria.htmlEVP_bf_cbc.htmlEVP_blake2b512.htmlEVP_camellia.htmlEVP_cast5_cbc.htmlEVP_chacha20.htmlEVP_des.htmlEVP_desx_cbc.htmlEVP_idea_cbc.htmlEVP_md2.htmlEVP_md4.htmlEVP_md5.htmlEVP_mdc2.htmlEVP_rc2_cbc.htmlEVP_rc4.htmlEVP_rc5_32_12_16_cbc.htmlEVP_ripemd160.htmlEVP_seed_cbc.htmlEVP_sha1.htmlEVP_sha224.htmlEVP_sha3_224.htmlEVP_sm3.htmlEVP_sm4_cbc.htmlEVP_whirlpool.htmlHMAC.htmlMD5.htmlMDC2_Init.htmlOBJ_nid2obj.htmlOCSP_REQUEST_new.htmlOCSP_cert_to_id.htmlOCSP_request_add1_nonce.htmlOCSP_resp_find_status.htmlOCSP_response_status.htmlOCSP_sendreq_new.htmlOPENSSL_Applink.htmlOPENSSL_LH_COMPFUNC.htmlOPENSSL_LH_stats.htmlOPENSSL_VERSION_NUMBER.htmlOPENSSL_config.htmlOPENSSL_fork_prepare.htmlOPENSSL_ia32cap.htmlOPENSSL_init_crypto.htmlOPENSSL_init_ssl.htmlOPENSSL_instrument_bus.htmlOPENSSL_load_builtin_modules.htmlOPENSSL_malloc.htmlOPENSSL_secure_malloc.htmlOSSL_STORE_INFO.htmlOSSL_STORE_LOADER.htmlOSSL_STORE_SEARCH.htmlOSSL_STORE_expect.htmlOSSL_STORE_open.htmlOpenSSL_add_all_algorithms.htmlPEM_bytes_read_bio.htmlPEM_read.htmlPEM_read_CMS.htmlPEM_read_bio_PrivateKey.htmlPEM_read_bio_ex.htmlPEM_write_bio_CMS_stream.htmlPEM_write_bio_PKCS7_stream.htmlPKCS12_create.htmlPKCS12_newpass.htmlPKCS12_parse.htmlPKCS5_PBKDF2_HMAC.htmlPKCS7_decrypt.htmlPKCS7_encrypt.htmlPKCS7_sign.htmlPKCS7_sign_add_signer.htmlPKCS7_verify.htmlRAND_DRBG_generate.htmlRAND_DRBG_get0_master.htmlRAND_DRBG_new.htmlRAND_DRBG_reseed.htmlRAND_DRBG_set_callbacks.htmlRAND_DRBG_set_ex_data.htmlRAND_add.htmlRAND_bytes.htmlRAND_cleanup.htmlRAND_egd.htmlRAND_load_file.htmlRAND_set_rand_method.htmlRC4_set_key.htmlRIPEMD160_Init.htmlRSA_blinding_on.htmlRSA_check_key.htmlRSA_generate_key.htmlRSA_get0_key.htmlRSA_meth_new.htmlRSA_new.htmlRSA_padding_add_PKCS1_type_1.htmlRSA_print.htmlRSA_private_encrypt.htmlRSA_public_encrypt.htmlRSA_set_method.htmlRSA_sign.htmlRSA_sign_ASN1_OCTET_STRING.htmlRSA_size.htmlSCT_new.htmlSCT_print.htmlSCT_validate.htmlSHA256_Init.htmlSMIME_read_CMS.htmlSMIME_read_PKCS7.htmlSMIME_write_CMS.htmlSMIME_write_PKCS7.htmlSSL_CIPHER_get_name.htmlSSL_COMP_add_compression_method.htmlSSL_CONF_CTX_new.htmlSSL_CONF_CTX_set1_prefix.htmlSSL_CONF_CTX_set_flags.htmlSSL_CONF_CTX_set_ssl_ctx.htmlSSL_CONF_cmd.htmlSSL_CONF_cmd_argv.htmlSSL_CTX_add1_chain_cert.htmlSSL_CTX_add_extra_chain_cert.htmlSSL_CTX_add_session.htmlSSL_CTX_config.htmlSSL_CTX_ctrl.htmlSSL_CTX_dane_enable.htmlSSL_CTX_flush_sessions.htmlSSL_CTX_free.htmlSSL_CTX_get0_param.htmlSSL_CTX_get_verify_mode.htmlSSL_CTX_has_client_custom_ext.htmlSSL_CTX_load_verify_locations.htmlSSL_CTX_new.htmlSSL_CTX_sess_number.htmlSSL_CTX_sess_set_cache_size.htmlSSL_CTX_sess_set_get_cb.htmlSSL_CTX_sessions.htmlSSL_CTX_set0_CA_list.htmlSSL_CTX_set1_curves.htmlSSL_CTX_set1_sigalgs.htmlSSL_CTX_set1_verify_cert_store.htmlSSL_CTX_set_alpn_select_cb.htmlSSL_CTX_set_cert_cb.htmlSSL_CTX_set_cert_store.htmlSSL_CTX_set_cert_verify_callback.htmlSSL_CTX_set_cipher_list.htmlSSL_CTX_set_client_cert_cb.htmlSSL_CTX_set_client_hello_cb.htmlSSL_CTX_set_ct_validation_callback.htmlSSL_CTX_set_ctlog_list_file.htmlSSL_CTX_set_default_passwd_cb.htmlSSL_CTX_set_ex_data.htmlSSL_CTX_set_generate_session_id.htmlSSL_CTX_set_info_callback.htmlSSL_CTX_set_keylog_callback.htmlSSL_CTX_set_max_cert_list.htmlSSL_CTX_set_min_proto_version.htmlSSL_CTX_set_mode.htmlSSL_CTX_set_msg_callback.htmlSSL_CTX_set_num_tickets.htmlSSL_CTX_set_options.htmlSSL_CTX_set_psk_client_callback.htmlSSL_CTX_set_quiet_shutdown.htmlSSL_CTX_set_read_ahead.htmlSSL_CTX_set_record_padding_callback.htmlSSL_CTX_set_security_level.htmlSSL_CTX_set_session_cache_mode.htmlSSL_CTX_set_session_id_context.htmlSSL_CTX_set_session_ticket_cb.htmlSSL_CTX_set_split_send_fragment.htmlSSL_CTX_set_ssl_version.htmlSSL_CTX_set_stateless_cookie_generate_cb.htmlSSL_CTX_set_timeout.htmlSSL_CTX_set_tlsext_servername_callback.htmlSSL_CTX_set_tlsext_status_cb.htmlSSL_CTX_set_tlsext_ticket_key_cb.htmlSSL_CTX_set_tlsext_use_srtp.htmlSSL_CTX_set_tmp_dh_callback.htmlSSL_CTX_set_verify.htmlSSL_CTX_use_certificate.htmlSSL_CTX_use_psk_identity_hint.htmlSSL_CTX_use_serverinfo.htmlSSL_SESSION_free.htmlSSL_SESSION_get0_cipher.htmlSSL_SESSION_get0_hostname.htmlSSL_SESSION_get0_id_context.htmlSSL_SESSION_get0_peer.htmlSSL_SESSION_get_compress_id.htmlSSL_SESSION_get_ex_data.htmlSSL_SESSION_get_protocol_version.htmlSSL_SESSION_get_time.htmlSSL_SESSION_has_ticket.htmlSSL_SESSION_is_resumable.htmlSSL_SESSION_print.htmlSSL_SESSION_set1_id.htmlSSL_accept.htmlSSL_alert_type_string.htmlSSL_alloc_buffers.htmlSSL_check_chain.htmlSSL_clear.htmlSSL_connect.htmlSSL_do_handshake.htmlSSL_export_keying_material.htmlSSL_extension_supported.htmlSSL_free.htmlSSL_get0_peer_scts.htmlSSL_get_SSL_CTX.htmlSSL_get_all_async_fds.htmlSSL_get_ciphers.htmlSSL_get_client_random.htmlSSL_get_current_cipher.htmlSSL_get_default_timeout.htmlSSL_get_error.htmlSSL_get_extms_support.htmlSSL_get_fd.htmlSSL_get_peer_cert_chain.htmlSSL_get_peer_certificate.htmlSSL_get_peer_signature_nid.htmlSSL_get_peer_tmp_key.htmlSSL_get_psk_identity.htmlSSL_get_rbio.htmlSSL_get_session.htmlSSL_get_shared_sigalgs.htmlSSL_get_verify_result.htmlSSL_get_version.htmlSSL_in_init.htmlSSL_key_update.htmlSSL_library_init.htmlSSL_load_client_CA_file.htmlSSL_new.htmlSSL_pending.htmlSSL_read.htmlSSL_read_early_data.htmlSSL_rstate_string.htmlSSL_session_reused.htmlSSL_set1_host.htmlSSL_set_bio.htmlSSL_set_connect_state.htmlSSL_set_fd.htmlSSL_set_session.htmlSSL_set_shutdown.htmlSSL_set_verify_result.htmlSSL_shutdown.htmlSSL_state_string.htmlSSL_want.htmlSSL_write.htmlUI_STRING.htmlUI_UTIL_read_pw.htmlUI_create_method.htmlUI_new.htmlX509V3_get_d2i.htmlX509_ALGOR_dup.htmlX509_CRL_get0_by_serial.htmlX509_EXTENSION_set_object.htmlX509_LOOKUP.htmlX509_LOOKUP_hash_dir.htmlX509_LOOKUP_meth_new.htmlX509_NAME_ENTRY_get_object.htmlX509_NAME_add_entry_by_txt.htmlX509_NAME_get0_der.htmlX509_NAME_get_index_by_NID.htmlX509_NAME_print_ex.htmlX509_PUBKEY_new.htmlX509_SIG_get0.htmlX509_STORE_CTX_get_error.htmlX509_STORE_CTX_new.htmlX509_STORE_CTX_set_verify_cb.htmlX509_STORE_add_cert.htmlX509_STORE_get0_param.htmlX509_STORE_new.htmlX509_STORE_set_verify_cb_func.htmlX509_VERIFY_PARAM_set_flags.htmlX509_check_ca.htmlX509_check_host.htmlX509_check_issued.htmlX509_check_private_key.htmlX509_check_purpose.htmlX509_cmp.htmlX509_cmp_time.htmlX509_digest.htmlX509_dup.htmlX509_get0_notBefore.htmlX509_get0_signature.htmlX509_get0_uids.htmlX509_get_extension_flags.htmlX509_get_pubkey.htmlX509_get_serialNumber.htmlX509_get_subject_name.htmlX509_get_version.htmlX509_new.htmlX509_sign.htmlX509_verify_cert.htmlX509v3_get_ext_by_NID.htmld2i_DHparams.htmld2i_PKCS8PrivateKey_bio.htmld2i_PrivateKey.htmld2i_SSL_SESSION.htmld2i_X509.htmli2d_CMS_bio_stream.htmli2d_PKCS7_bio_stream.htmli2d_re_X509_tbs.htmlo2i_SCT_LIST.html
man5
man7
man
man1
man3
ADMISSIONS.3ASN1_INTEGER_get_int64.3ASN1_ITEM_lookup.3ASN1_OBJECT_new.3ASN1_STRING_TABLE_add.3ASN1_STRING_length.3ASN1_STRING_new.3ASN1_STRING_print_ex.3ASN1_TIME_set.3ASN1_TYPE_get.3ASN1_generate_nconf.3ASYNC_WAIT_CTX_new.3ASYNC_start_job.3BF_encrypt.3BIO_ADDR.3BIO_ADDRINFO.3BIO_connect.3BIO_ctrl.3BIO_f_base64.3BIO_f_buffer.3BIO_f_cipher.3BIO_f_md.3BIO_f_null.3BIO_f_ssl.3BIO_find_type.3BIO_get_data.3BIO_get_ex_new_index.3BIO_meth_new.3BIO_new.3BIO_new_CMS.3BIO_parse_hostserv.3BIO_printf.3BIO_push.3BIO_read.3BIO_s_accept.3BIO_s_bio.3BIO_s_connect.3BIO_s_fd.3BIO_s_file.3BIO_s_mem.3BIO_s_null.3BIO_s_socket.3BIO_set_callback.3BIO_should_retry.3BN_BLINDING_new.3BN_CTX_new.3BN_CTX_start.3BN_add.3BN_add_word.3BN_bn2bin.3BN_cmp.3BN_copy.3BN_generate_prime.3BN_mod_inverse.3BN_mod_mul_montgomery.3BN_mod_mul_reciprocal.3BN_new.3BN_num_bytes.3BN_rand.3BN_security_bits.3BN_set_bit.3BN_swap.3BN_zero.3BUF_MEM_new.3CMS_add0_cert.3CMS_add1_recipient_cert.3CMS_add1_signer.3CMS_compress.3CMS_decrypt.3CMS_encrypt.3CMS_final.3CMS_get0_RecipientInfos.3CMS_get0_SignerInfos.3CMS_get0_type.3CMS_get1_ReceiptRequest.3CMS_sign.3CMS_sign_receipt.3CMS_uncompress.3CMS_verify.3CMS_verify_receipt.3CONF_modules_free.3CONF_modules_load_file.3CRYPTO_THREAD_run_once.3CRYPTO_get_ex_new_index.3CRYPTO_memcmp.3CTLOG_STORE_get0_log_by_id.3CTLOG_STORE_new.3CTLOG_new.3CT_POLICY_EVAL_CTX_new.3DEFINE_STACK_OF.3DES_random_key.3DH_generate_key.3DH_generate_parameters.3DH_get0_pqg.3DH_get_1024_160.3DH_meth_new.3DH_new.3DH_new_by_nid.3DH_set_method.3DH_size.3DSA_SIG_new.3DSA_do_sign.3DSA_dup_DH.3DSA_generate_key.3DSA_generate_parameters.3DSA_get0_pqg.3DSA_meth_new.3DSA_new.3DSA_set_method.3DSA_sign.3DSA_size.3DTLS_get_data_mtu.3DTLS_set_timer_cb.3DTLSv1_listen.3ECDSA_SIG_new.3ECPKParameters_print.3EC_GFp_simple_method.3EC_GROUP_copy.3EC_GROUP_new.3EC_KEY_get_enc_flags.3EC_KEY_new.3EC_POINT_add.3EC_POINT_new.3ENGINE_add.3ERR_GET_LIB.3ERR_clear_error.3ERR_error_string.3ERR_get_error.3ERR_load_crypto_strings.3ERR_load_strings.3ERR_print_errors.3ERR_put_error.3ERR_remove_state.3ERR_set_mark.3EVP_BytesToKey.3EVP_CIPHER_CTX_get_cipher_data.3EVP_CIPHER_meth_new.3EVP_DigestInit.3EVP_DigestSignInit.3EVP_DigestVerifyInit.3EVP_EncodeInit.3EVP_EncryptInit.3EVP_MD_meth_new.3EVP_OpenInit.3EVP_PKEY_ASN1_METHOD.3EVP_PKEY_CTX_ctrl.3EVP_PKEY_CTX_new.3EVP_PKEY_CTX_set1_pbe_pass.3EVP_PKEY_CTX_set_hkdf_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_md.3EVP_PKEY_CTX_set_scrypt_N.3EVP_PKEY_CTX_set_tls1_prf_md.3EVP_PKEY_asn1_get_count.3EVP_PKEY_cmp.3EVP_PKEY_decrypt.3EVP_PKEY_derive.3EVP_PKEY_encrypt.3EVP_PKEY_get_default_digest_nid.3EVP_PKEY_keygen.3EVP_PKEY_meth_get_count.3EVP_PKEY_meth_new.3EVP_PKEY_new.3EVP_PKEY_print_private.3EVP_PKEY_set1_RSA.3EVP_PKEY_sign.3EVP_PKEY_size.3EVP_PKEY_verify.3EVP_PKEY_verify_recover.3EVP_SealInit.3EVP_SignInit.3EVP_VerifyInit.3EVP_aes.3EVP_aria.3EVP_bf_cbc.3EVP_blake2b512.3EVP_camellia.3EVP_cast5_cbc.3EVP_chacha20.3EVP_des.3EVP_desx_cbc.3EVP_idea_cbc.3EVP_md2.3EVP_md4.3EVP_md5.3EVP_mdc2.3EVP_rc2_cbc.3EVP_rc4.3EVP_rc5_32_12_16_cbc.3EVP_ripemd160.3EVP_seed_cbc.3EVP_sha1.3EVP_sha224.3EVP_sha3_224.3EVP_sm3.3EVP_sm4_cbc.3EVP_whirlpool.3HMAC.3MD5.3MDC2_Init.3OBJ_nid2obj.3OCSP_REQUEST_new.3OCSP_cert_to_id.3OCSP_request_add1_nonce.3OCSP_resp_find_status.3OCSP_response_status.3OCSP_sendreq_new.3OPENSSL_Applink.3OPENSSL_LH_COMPFUNC.3OPENSSL_LH_stats.3OPENSSL_VERSION_NUMBER.3OPENSSL_config.3OPENSSL_fork_prepare.3OPENSSL_ia32cap.3OPENSSL_init_crypto.3OPENSSL_init_ssl.3OPENSSL_instrument_bus.3OPENSSL_load_builtin_modules.3OPENSSL_malloc.3OPENSSL_secure_malloc.3OSSL_STORE_INFO.3OSSL_STORE_LOADER.3OSSL_STORE_SEARCH.3OSSL_STORE_expect.3OSSL_STORE_open.3OpenSSL_add_all_algorithms.3PEM_bytes_read_bio.3PEM_read.3PEM_read_CMS.3PEM_read_bio_PrivateKey.3PEM_read_bio_ex.3PEM_write_bio_CMS_stream.3PEM_write_bio_PKCS7_stream.3PKCS12_create.3PKCS12_newpass.3PKCS12_parse.3PKCS5_PBKDF2_HMAC.3PKCS7_decrypt.3PKCS7_encrypt.3PKCS7_sign.3PKCS7_sign_add_signer.3PKCS7_verify.3RAND_DRBG_generate.3RAND_DRBG_get0_master.3RAND_DRBG_new.3RAND_DRBG_reseed.3RAND_DRBG_set_callbacks.3RAND_DRBG_set_ex_data.3RAND_add.3RAND_bytes.3RAND_cleanup.3RAND_egd.3RAND_load_file.3RAND_set_rand_method.3RC4_set_key.3RIPEMD160_Init.3RSA_blinding_on.3RSA_check_key.3RSA_generate_key.3RSA_get0_key.3RSA_meth_new.3RSA_new.3RSA_padding_add_PKCS1_type_1.3RSA_print.3RSA_private_encrypt.3RSA_public_encrypt.3RSA_set_method.3RSA_sign.3RSA_sign_ASN1_OCTET_STRING.3RSA_size.3SCT_new.3SCT_print.3SCT_validate.3SHA256_Init.3SMIME_read_CMS.3SMIME_read_PKCS7.3SMIME_write_CMS.3SMIME_write_PKCS7.3SSL_CIPHER_get_name.3SSL_COMP_add_compression_method.3SSL_CONF_CTX_new.3SSL_CONF_CTX_set1_prefix.3SSL_CONF_CTX_set_flags.3SSL_CONF_CTX_set_ssl_ctx.3SSL_CONF_cmd.3SSL_CONF_cmd_argv.3SSL_CTX_add1_chain_cert.3SSL_CTX_add_extra_chain_cert.3SSL_CTX_add_session.3SSL_CTX_config.3SSL_CTX_ctrl.3SSL_CTX_dane_enable.3SSL_CTX_flush_sessions.3SSL_CTX_free.3SSL_CTX_get0_param.3SSL_CTX_get_verify_mode.3SSL_CTX_has_client_custom_ext.3SSL_CTX_load_verify_locations.3SSL_CTX_new.3SSL_CTX_sess_number.3SSL_CTX_sess_set_cache_size.3SSL_CTX_sess_set_get_cb.3SSL_CTX_sessions.3SSL_CTX_set0_CA_list.3SSL_CTX_set1_curves.3SSL_CTX_set1_sigalgs.3SSL_CTX_set1_verify_cert_store.3SSL_CTX_set_alpn_select_cb.3SSL_CTX_set_cert_cb.3SSL_CTX_set_cert_store.3SSL_CTX_set_cert_verify_callback.3SSL_CTX_set_cipher_list.3SSL_CTX_set_client_cert_cb.3SSL_CTX_set_client_hello_cb.3SSL_CTX_set_ct_validation_callback.3SSL_CTX_set_ctlog_list_file.3SSL_CTX_set_default_passwd_cb.3SSL_CTX_set_ex_data.3SSL_CTX_set_generate_session_id.3SSL_CTX_set_info_callback.3SSL_CTX_set_keylog_callback.3SSL_CTX_set_max_cert_list.3SSL_CTX_set_min_proto_version.3SSL_CTX_set_mode.3SSL_CTX_set_msg_callback.3SSL_CTX_set_num_tickets.3SSL_CTX_set_options.3SSL_CTX_set_psk_client_callback.3SSL_CTX_set_quiet_shutdown.3SSL_CTX_set_read_ahead.3SSL_CTX_set_record_padding_callback.3SSL_CTX_set_security_level.3SSL_CTX_set_session_cache_mode.3SSL_CTX_set_session_id_context.3SSL_CTX_set_session_ticket_cb.3SSL_CTX_set_split_send_fragment.3SSL_CTX_set_ssl_version.3SSL_CTX_set_stateless_cookie_generate_cb.3SSL_CTX_set_timeout.3SSL_CTX_set_tlsext_servername_callback.3SSL_CTX_set_tlsext_status_cb.3SSL_CTX_set_tlsext_ticket_key_cb.3SSL_CTX_set_tlsext_use_srtp.3SSL_CTX_set_tmp_dh_callback.3SSL_CTX_set_verify.3SSL_CTX_use_certificate.3SSL_CTX_use_psk_identity_hint.3SSL_CTX_use_serverinfo.3SSL_SESSION_free.3SSL_SESSION_get0_cipher.3SSL_SESSION_get0_hostname.3SSL_SESSION_get0_id_context.3SSL_SESSION_get0_peer.3SSL_SESSION_get_compress_id.3SSL_SESSION_get_ex_data.3SSL_SESSION_get_protocol_version.3SSL_SESSION_get_time.3SSL_SESSION_has_ticket.3SSL_SESSION_is_resumable.3SSL_SESSION_print.3SSL_SESSION_set1_id.3SSL_accept.3SSL_alert_type_string.3SSL_alloc_buffers.3SSL_check_chain.3SSL_clear.3SSL_connect.3SSL_do_handshake.3SSL_export_keying_material.3SSL_extension_supported.3SSL_free.3SSL_get0_peer_scts.3SSL_get_SSL_CTX.3SSL_get_all_async_fds.3SSL_get_ciphers.3SSL_get_client_random.3SSL_get_current_cipher.3SSL_get_default_timeout.3SSL_get_error.3SSL_get_extms_support.3SSL_get_fd.3SSL_get_peer_cert_chain.3SSL_get_peer_certificate.3SSL_get_peer_signature_nid.3SSL_get_peer_tmp_key.3SSL_get_psk_identity.3SSL_get_rbio.3SSL_get_session.3SSL_get_shared_sigalgs.3SSL_get_verify_result.3SSL_get_version.3SSL_in_init.3SSL_key_update.3SSL_library_init.3SSL_load_client_CA_file.3SSL_new.3SSL_pending.3SSL_read.3SSL_read_early_data.3SSL_rstate_string.3SSL_session_reused.3SSL_set1_host.3SSL_set_bio.3SSL_set_connect_state.3SSL_set_fd.3SSL_set_session.3SSL_set_shutdown.3SSL_set_verify_result.3SSL_shutdown.3SSL_state_string.3SSL_want.3SSL_write.3UI_STRING.3UI_UTIL_read_pw.3UI_create_method.3UI_new.3X509V3_get_d2i.3X509_ALGOR_dup.3X509_CRL_get0_by_serial.3X509_EXTENSION_set_object.3X509_LOOKUP.3X509_LOOKUP_hash_dir.3X509_LOOKUP_meth_new.3X509_NAME_ENTRY_get_object.3X509_NAME_add_entry_by_txt.3X509_NAME_get0_der.3X509_NAME_get_index_by_NID.3X509_NAME_print_ex.3X509_PUBKEY_new.3X509_SIG_get0.3X509_STORE_CTX_get_error.3X509_STORE_CTX_new.3X509_STORE_CTX_set_verify_cb.3X509_STORE_add_cert.3X509_STORE_get0_param.3X509_STORE_new.3X509_STORE_set_verify_cb_func.3X509_VERIFY_PARAM_set_flags.3X509_check_ca.3X509_check_host.3X509_check_issued.3X509_check_private_key.3X509_check_purpose.3X509_cmp.3X509_cmp_time.3X509_digest.3X509_dup.3X509_get0_notBefore.3X509_get0_signature.3X509_get0_uids.3X509_get_extension_flags.3X509_get_pubkey.3X509_get_serialNumber.3X509_get_subject_name.3X509_get_version.3X509_new.3X509_sign.3X509_verify_cert.3X509v3_get_ext_by_NID.3d2i_DHparams.3d2i_PKCS8PrivateKey_bio.3d2i_PrivateKey.3d2i_SSL_SESSION.3d2i_X509.3i2d_CMS_bio_stream.3i2d_PKCS7_bio_stream.3i2d_re_X509_tbs.3o2i_SCT_LIST.3
man5
man7
usr
local
include
crypto
internal
openssl
sqlite
src
tools

339
Makefile

@ -3,59 +3,134 @@
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
VERSION_CODE := 11
VERSION_NUMBER := 0.0.11
VERSION_NAME := Be nothing, and you will have everything to give to others.
VERSION_CODE := 12
VERSION_NUMBER := 0.0.12
VERSION_NAME := Where everybody knows your name.
PROJECT = tildefriends
BUILD_DIR ?= out
BUILD_TYPES := debug release windebug winrelease androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64
UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
ANDROID_SDK ?= ~/Android/Sdk
ifeq ($(UNAME_S),Darwin)
BUILD_TYPES := macosdebug macosrelease iosdebug iosrelease iossimdebug iossimrelease
else ifeq ($(UNAME_S),Linux)
BUILD_TYPES := debug release
HAVE_ANDROID = $(if $(shell which $(ANDROID_SDK)/platform-tools/adb),1,0)
HAVE_LINUX_IOS = $(if $(shell which deps/ios_toolchain/target/bin deps/ios_toolchain/target/bin/arm-apple-darwin11-clang),1,0)
HAVE_WIN = $(if $(shell which x86_64-w64-mingw32-gcc-win32),1,0)
else
$(error Unexpected host platform $(UNAME_S).)
endif
CFLAGS += \
-Wall \
-Wextra \
-Wno-unused-parameter \
-Wno-cast-function-type \
-MMD \
-ffunction-sections \
-fdata-sections \
-fno-exceptions \
-g
LDFLAGS += -Wl,--gc-sections
ANDROID_SDK ?= ~/Android/Sdk
ANDROID_BUILD_TOOLS := $(ANDROID_SDK)/build-tools/33.0.1
ANDROID_BUILD_TOOLS := $(ANDROID_SDK)/build-tools/34.0.0
ANDROID_PLATFORM := $(ANDROID_SDK)/platforms/android-33
ANDROID_NDK ?= $(ANDROID_SDK)/ndk/23.1.7779620
ANDROID_MIN_SDK_VERSION := 28
ANDROID_NDK ?= $(ANDROID_SDK)/ndk/26.0.10792818
ANDROID_MIN_SDK_VERSION := 24
ANDROID_TARGET_SDK_VERSION := 34
ANDROID_ARMV7A_TARGETS := \
out/androiddebug-armv7a/tildefriends \
out/androidrelease-armv7a/tildefriends
ANDROID_ARM64_TARGETS := \
out/androiddebug/tildefriends \
out/androidrelease/tildefriends
ANDROID_X86_TARGETS := \
out/androiddebug-x86/tildefriends \
out/androidrelease-x86/tildefriends
ANDROID_X86_64_TARGETS := \
out/androiddebug-x86_64/tildefriends \
out/androidrelease-x86_64/tildefriends
ANDROID_TARGETS := \
$(ANDROID_X86_TARGETS) \
$(ANDROID_X86_64_TARGETS) \
$(ANDROID_ARMV7A_TARGETS) \
$(ANDROID_ARM64_TARGETS)
ifeq ($(HAVE_ANDROID),1)
BUILD_TYPES += \
androiddebug \
androidrelease \
androiddebug-armv7a \
androidrelease-armv7a \
androiddebug-x86 \
androidrelease-x86 \
androiddebug-x86_64 \
androidrelease-x86_64
all: out/TildeFriends-arm-debug.apk out/TildeFriends-arm-release.apk out/TildeFriends-x86-debug.apk out/TildeFriends-x86-release.apk
endif
WINDOWS_TARGETS := \
out/windebug/tildefriends.exe \
out/winrelease/tildefriends.exe
ifeq ($(HAVE_WIN),1)
BUILD_TYPES += windebug winrelease
endif
LINUX_TARGETS := \
out/debug/tildefriends \
out/release/tildefriends
MACOS_TARGETS := \
out/macosdebug/tildefriends \
out/macosrelease/tildefriends
IOS_TARGETS := \
out/iosdebug/tildefriends \
out/iosrelease/tildefriends
IOSSIM_TARGETS := \
out/iossimdebug/tildefriends \
out/iossimrelease/tildefriends
IOS_APPS = \
out/tildefriends-iosdebug.app/tildefriends \
out/tildefriends-iosrelease.app/tildefriends
ifeq ($(HAVE_LINUX_IOS),1)
BUILD_TYPES += iosdebug iosrelease
all: $(IOS_APPS)
endif
ifeq ($(UNAME_S),Darwin)
all: $(IOS_APPS) \
out/tildefriends-iossimdebug.app/tildefriends \
out/tildefriends-iossimrelease.app/tildefriends
endif
DEBUG_TARGETS := \
out/debug/tildefriends \
out/windebug/tildefriends \
out/windebug/tildefriends.exe \
out/iosdebug/tildefriends \
out/iossimdebug/tildefriends \
out/macosdebug/tildefriends \
out/androiddebug/tildefriends \
out/androiddebug-x86_64/tildefriends
out/androiddebug-armv7a/tildefriends \
out/androiddebug-x86_64/tildefriends \
out/androiddebug-x86/tildefriends
RELEASE_TARGETS := \
out/release/tildefriends \
out/winrelease/tildefriends \
out/winrelease/tildefriends.exe \
out/iosrelease/tildefriends \
out/iossimrelease/tildefriends \
out/macosrelease/tildefriends \
out/androidrelease/tildefriends \
out/androidrelease-x86_64/tildefriends
out/androidrelease-armv7a/tildefriends \
out/androidrelease-x86_64/tildefriends \
out/androidrelease-x86/tildefriends
ALL_TARGETS = $(DEBUG_TARGETS) $(RELEASE_TARGETS)
ANDROID_RELEASE_TARGETS := $(filter-out $(DEBUG_TARGETS),$(ANDROID_TARGETS))
NONANDROID_RELEASE_TARGETS := $(filter-out $(ANDROID_ARM64_TARGETS),$(RELEASE_TARGETS))
NONANDROID_TARGETS := $(filter-out $(ANDROID_TARGETS),$(DEBUG_TARGETS) $(RELEASE_TARGETS))
NONANDROID_TARGETS := $(filter-out $(ANDROID_TARGETS),$(ALL_TARGETS))
NONMACOS_TARGETS := $(filter-out $(MACOS_TARGETS) $(IOS_TARGETS) $(IOSSIM_TARGETS),$(ALL_TARGETS))
$(NONANDROID_TARGETS): CFLAGS += -fno-omit-frame-pointer
$(NONANDROID_TARGETS): LDFLAGS += -rdynamic
$(filter-out $(ANDROID_TARGETS) $(WINDOWS_TARGETS),$(ALL_TARGETS)): LDFLAGS += -rdynamic
$(ANDROID_TARGETS): CFLAGS += \
--sysroot $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot \
-fPIC \
@ -68,28 +143,51 @@ $(DEBUG_TARGETS): CFLAGS += -DDEBUG -Og
$(RELEASE_TARGETS): CFLAGS += -DNDEBUG
$(NONANDROID_RELEASE_TARGETS): CFLAGS += -O3
$(ANDROID_RELEASE_TARGETS): CFLAGS += -Os
windebug winrelease: CC = x86_64-w64-mingw32-gcc-win32
windebug winrelease: AS = $(CC)
windebug winrelease: CFLAGS += \
$(WINDOWS_TARGETS): CC = x86_64-w64-mingw32-gcc-win32
$(WINDOWS_TARGETS): AS = $(CC)
$(WINDOWS_TARGETS): CFLAGS += \
-D_WIN32_WINNT=0x0A00 \
-DWINVER=0x0A00 \
-DNTDDI_VERSION=NTDDI_WIN10 \
-Ideps/openssl/mingw64/include
windebug winrelease: LDFLAGS += \
-Ideps/openssl/mingw64/usr/local/include
$(WINDOWS_TARGETS): LDFLAGS += \
-static \
-lm \
-Ldeps/openssl/mingw64/lib
-Ldeps/openssl/mingw64/usr/local/lib
ifeq ($(UNAME_S),Darwin)
$(MACOS_TARGETS): CC = xcrun clang
$(IOS_TARGETS): IOS_SYSROOT := $(shell xcrun --sdk iphoneos --show-sdk-path)
$(IOS_TARGETS): CC = xcrun --sdk iphoneos clang -isysroot $(IOS_SYSROOT) -arch arm64
$(IOSSIM_TARGETS): IOSSIM_SYSROOT := $(shell xcrun --sdk iphonesimulator --show-sdk-path)
$(IOSSIM_TARGETS): CC = xcrun --sdk iphonesimulator clang -isysroot $(IOSSIM_SYSROOT) -arch x86_64
else ifeq ($(UNAME_S),Linux)
$(IOS_TARGETS): IOS_SYSROOT := deps/iPhoneOS17.0.sdk
$(IOS_TARGETS): CC = PATH=$$PATH:deps/ios_toolchain/target/bin deps/ios_toolchain/target/bin/arm-apple-darwin11-clang
endif
$(ANDROID_X86_64_TARGETS): ANDROID_NDK_TARGET_TRIPLE := x86_64-linux-android
$(ANDROID_X86_TARGETS): ANDROID_NDK_TARGET_TRIPLE := i686-linux-android
$(ANDROID_ARMV7A_TARGETS): ANDROID_NDK_TARGET_TRIPLE := armv7a-linux-androideabi
$(ANDROID_ARM64_TARGETS): ANDROID_NDK_TARGET_TRIPLE := aarch64-linux-android
$(ANDROID_TARGETS): CC = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/$(ANDROID_NDK_TARGET_TRIPLE)$(ANDROID_MIN_SDK_VERSION)-clang
$(ANDROID_TARGETS): AS = $(CC)
$(ANDROID_TARGETS): CFLAGS += \
-target $(ANDROID_NDK_TARGET_TRIPLE)$(ANDROID_MIN_SDK_VERSION) \
-Wno-unknown-warning-option
$(ANDROID_ARMV7A_TARGETS): CFLAGS += -Ideps/openssl/android/armeabi-v7a/usr/local/include
$(ANDROID_ARMV7A_TARGETS): LDFLAGS += -Ldeps/openssl/android/armeabi-v7a/usr/local/lib
$(ANDROID_ARM64_TARGETS): CFLAGS += -Ideps/openssl/android/arm64-v8a/usr/local/include
$(ANDROID_ARM64_TARGETS): LDFLAGS += -Ldeps/openssl/android/arm64-v8a/usr/local/lib
$(ANDROID_X86_TARGETS): CFLAGS += -Ideps/openssl/android/x86/usr/local/include
$(ANDROID_X86_TARGETS): CFLAGS += -Wno-atomic-alignment
$(ANDROID_X86_TARGETS): LDFLAGS += -Ldeps/openssl/android/x86/usr/local/lib
$(ANDROID_X86_64_TARGETS): CFLAGS += -Ideps/openssl/android/x86_64/usr/local/include
$(ANDROID_X86_64_TARGETS): LDFLAGS += -Ldeps/openssl/android/x86_64/usr/local/lib
$(NONMACOS_TARGETS): CFLAGS += -Wno-cast-function-type
$(NONMACOS_TARGETS): LDFLAGS += -Wl,--gc-sections
$(IOS_TARGETS): CFLAGS += -mios-version-min=9.0 -Ideps/openssl/ios/ios64-xcrun/usr/local/include
$(IOS_TARGETS): LDFLAGS += -Ldeps/openssl/ios/ios64-xcrun/usr/local/lib
$(IOSSIM_TARGETS): CFLAGS += -Ideps/openssl/ios/iossimulator-xcrun/usr/local/include
$(IOSSIM_TARGETS): LDFLAGS += -Ldeps/openssl/ios/iossimulator-xcrun/usr/local/lib
ifeq ($(UNAME_M),x86_64)
debug: CFLAGS += -fsanitize=address -fsanitize=undefined -fno-common
@ -100,10 +198,14 @@ get_objs = \
$(foreach build_type,$(BUILD_TYPES),$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)))))) \
$(foreach build_type,debug release,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix))))) \
$(foreach build_type,windebug winrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_win))))) \
$(foreach build_type,androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_android))))) \
$(foreach build_type,androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix)))))
$(foreach build_type,androiddebug androidrelease androiddebug-x86 androidrelease-x86 androiddebug-x86_64 androidrelease-x86_64 androiddebug-armv7a androiddebug-armv7a,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_android))))) \
$(foreach build_type,androiddebug androidrelease androiddebug-x86 androidrelease-x86 androiddebug-x86_64 androidrelease-x86_64 androiddebug-armv7a androidrelease-armv7a,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix))))) \
$(foreach build_type,macosdebug macosrelease iosdebug iosrelease iossimdebug iossimrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_macos))))) \
$(foreach build_type,iosdebug iosrelease iossimdebug iossimrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_ios))))) \
$(foreach build_type,androiddebug-x86 androidrelease-x86,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_x86)))))
APP_SOURCES := $(wildcard src/*.c)
APP_SOURCES_ios := $(wildcard src/*.m)
APP_OBJS := $(call get_objs,APP_SOURCES)
$(APP_OBJS): CFLAGS += \
-Ideps/base64c/include \
@ -122,7 +224,7 @@ $(APP_OBJS): CFLAGS += \
-Wdouble-promotion \
-Werror
ifeq ($(UNAME_M),x86_64)
$(filter-out $(BUILD_DIR)/android%,$(APP_OBJS)): CFLAGS += \
$(filter-out $(BUILD_DIR)/android% $(BUILD_DIR)/macos% $(BUILD_DIR)/ios%,$(APP_OBJS)): CFLAGS += \
-fanalyzer
endif
@ -130,7 +232,9 @@ BLOWFISH_SOURCES := \
deps/crypt_blowfish/crypt_blowfish.c \
deps/crypt_blowfish/crypt_gensalt.c \
deps/crypt_blowfish/wrapper.c
BLOWFISH_SOURCES_win = \
BLOWFISH_SOURCES_win := \
deps/crypt_blowfish/x86.S
BLOWFISH_SOURCES_x86 := \
deps/crypt_blowfish/x86.S
BLOWFISH_OBJS := $(call get_objs,BLOWFISH_SOURCES)
@ -198,6 +302,32 @@ UV_SOURCES_win := \
deps/libuv/src/win/util.c \
deps/libuv/src/win/winapi.c \
deps/libuv/src/win/winsock.c
UV_SOURCES_macos := \
deps/libuv/src/unix/async.c \
deps/libuv/src/unix/bsd-ifaddrs.c \
deps/libuv/src/unix/core.c \
deps/libuv/src/unix/darwin.c \
deps/libuv/src/unix/darwin-proctitle.c \
deps/libuv/src/unix/dl.c \
deps/libuv/src/unix/fs.c \
deps/libuv/src/unix/fsevents.c \
deps/libuv/src/unix/getaddrinfo.c \
deps/libuv/src/unix/getnameinfo.c \
deps/libuv/src/unix/kqueue.c \
deps/libuv/src/unix/loop-watcher.c \
deps/libuv/src/unix/loop.c \
deps/libuv/src/unix/pipe.c \
deps/libuv/src/unix/poll.c \
deps/libuv/src/unix/process.c \
deps/libuv/src/unix/proctitle.c \
deps/libuv/src/unix/random-devurandom.c \
deps/libuv/src/unix/random-getentropy.c \
deps/libuv/src/unix/signal.c \
deps/libuv/src/unix/stream.c \
deps/libuv/src/unix/tcp.c \
deps/libuv/src/unix/thread.c \
deps/libuv/src/unix/tty.c \
deps/libuv/src/unix/udp.c
UV_OBJS := $(call get_objs,UV_SOURCES)
$(UV_OBJS): CFLAGS += \
-Ideps/libuv/include \
@ -212,6 +342,10 @@ $(UV_OBJS): CFLAGS += \
-D_GNU_SOURCE
SODIUM_SOURCES := \
deps/libsodium/src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c \
deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c \
deps/libsodium/src/libsodium/crypto_aead/aegis256/aead_aegis256.c \
deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_soft.c \
deps/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c \
deps/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c \
deps/libsodium/src/libsodium/crypto_box/crypto_box.c \
@ -219,6 +353,7 @@ SODIUM_SOURCES := \
deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c \
deps/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c \
deps/libsodium/src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c \
deps/libsodium/src/libsodium/crypto_core/softaes/softaes.c \
deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c \
deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c \
deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c \
@ -232,6 +367,7 @@ SODIUM_SOURCES := \
deps/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.c \
deps/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c \
deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c \
deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c \
deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c \
deps/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c \
deps/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c \
@ -245,7 +381,7 @@ SODIUM_SOURCES := \
deps/libsodium/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c \
deps/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.c \
deps/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c \
deps/libsodium/src/libsodium/crypto_verify/sodium/verify.c \
deps/libsodium/src/libsodium/crypto_verify/verify.c \
deps/libsodium/src/libsodium/randombytes/randombytes.c \
deps/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c \
deps/libsodium/src/libsodium/sodium/core.c \
@ -257,12 +393,18 @@ SODIUM_OBJS := $(call get_objs,SODIUM_SOURCES)
$(SODIUM_OBJS): CFLAGS += \
-DCONFIGURED=1 \
-DMINIMAL=1 \
-DHAVE_ALLOCA \
-DHAVE_CPUID_V \
-DHAVE_GCC_MEMORY_FENCES \
-Wno-unused-function \
-Wno-unused-variable \
-Wno-type-limits \
-Wno-unknown-pragmas \
-Wno-attributes \
-Ideps/libsodium/builds/msvc \
-Ideps/libsodium/src/libsodium/include/sodium
#(SODIUM_OBJS_unix): CFLAGS += \
-DHAVE_ALLOCA_H
SQLITE_SOURCES := deps/sqlite/sqlite3.c
SQLITE_OBJS := $(call get_objs,SQLITE_SOURCES)
@ -291,10 +433,11 @@ $(SQLITE_OBJS): CFLAGS += \
-DSQLITE_OMIT_TCL_VARIABLE \
-DSQLITE_PRAGMA_DEFAULT_WAL_SYNCHRONOUS=1 \
-DSQLITE_SECURE_DELETE \
-DSQLITE_THREADSAFE=0 \
-DSQLITE_THREADSAFE=2 \
-DSQLITE_UNTESTABLE \
-DSQLITE_USE_ALLOCA \
-DHAVE_ISNAN \
-DHAVE_GETHOSTUUID=0 \
-Wno-implicit-fallthrough \
-Wno-unused-but-set-variable \
-Wno-unused-function \
@ -349,6 +492,12 @@ LIBBACKTRACE_SOURCES_win := \
deps/libbacktrace/pecoff.c \
deps/libbacktrace/posix.c \
deps/libbacktrace/read.c
LIBBACKTRACE_SOURCES_macos := \
deps/libbacktrace/dwarf.c \
deps/libbacktrace/macho.c \
deps/libbacktrace/mmap.c \
deps/libbacktrace/mmapio.c \
deps/libbacktrace/posix.c
LIBBACKTRACE_OBJS := $(call get_objs,LIBBACKTRACE_SOURCES)
$(LIBBACKTRACE_OBJS): CFLAGS += \
-Ideps/libbacktrace_config \
@ -378,11 +527,11 @@ $(MINIUNZIP_OBJS): CFLAGS += \
LDFLAGS += \
-pthread \
-lm
debug release: LDFLAGS += \
debug release $(MACOS_TARGETS) $(IOS_TARGETS) $(IOSSIM_TARGETS): LDFLAGS += \
-ldl \
-lssl \
-lcrypto
windebug winrelease: LDFLAGS += \
$(WINDOWS_TARGETS): LDFLAGS += \
-lssl \
-lcrypto \
-lcrypt32 \
@ -400,10 +549,17 @@ $(ANDROID_TARGETS): LDFLAGS += \
-llog \
-lssl \
-lcrypto
$(MACOS_TARGETS) $(IOS_TARGETS) $(IOSSIM_TARGETS): CFLAGS += \
-Wno-unknown-warning-option
$(IOS_TARGETS) $(IOSSIM_TARGETS): LDFLAGS += \
-framework Foundation \
-framework CoreFoundation \
-framework UIKit \
-framework WebKit
unix: debug release
win: windebug winrelease
all: $(BUILD_TYPES) out/TildeFriends-debug.apk out/TildeFriends-release.apk
all: $(BUILD_TYPES)
.PHONY: all win unix
ALL_APP_OBJS := \
@ -427,13 +583,18 @@ $(1): $(BUILD_DIR)/$(1)/$(PROJECT)$(if $(filter win%,$(1)),.exe)
$(BUILD_DIR)/$(1)/$(PROJECT)$(if $(filter win%,$(1)),.exe): $(filter $(BUILD_DIR)/$(1)/%,$(ALL_APP_OBJS))
@echo [link] $$@
@$$(CC) -o $$@ -Wl,-Map,$$@.map $$^ $$(LDFLAGS)
@$$(CC) -o $$@ $$^ $$(LDFLAGS)
$(BUILD_DIR)/$(1)/%.o: %.c
@mkdir -p $$(dir $$@)
@echo [c] $$@
@$$(CC) $$(CFLAGS) -c $$< -o $$@
$(BUILD_DIR)/$(1)/%.o: %.m
@mkdir -p $$(dir $$@)
@echo [m] $$@
@$$(CC) $$(CFLAGS) -c $$< -o $$@
$(BUILD_DIR)/$(1)/%.o: %.S
@mkdir -p $$(dir $$@)
@echo [as] $$@
@ -451,7 +612,8 @@ src/android/AndroidManifest.xml : $(firstword $(MAKEFILE_LIST))
@sed -i \
-e 's/versionCode=".*"/versionCode="$(VERSION_CODE)"/' \
-e 's/versionName=".*"/versionName="$(VERSION_NUMBER)"/' \
-e 's/android:minSdkVersion=".*"/android:minSdkVersion="$(ANDROID_MIN_SDK_VERSION)"/' \
-e 's/android:minSdkVersion="[[:digit:]]*"/android:minSdkVersion="$(ANDROID_MIN_SDK_VERSION)"/' \
-e 's/android:targetSdkVersion="[[:digit:]]*"/android:targetSdkVersion="$(ANDROID_TARGET_SDK_VERSION)"/' \
$@
# Android support.
@ -487,37 +649,96 @@ PACKAGE_DIRS := \
deps/codemirror/ \
deps/lit/
RAW_FILES := $(shell find $(PACKAGE_DIRS) -type f)
RAW_FILES := $(filter-out apps/gg% apps/welcome%, $(shell find $(PACKAGE_DIRS) -type f))
out/apk/TildeFriends-debug.unsigned.apk: BUILD_TYPE := debug
out/apk/TildeFriends-release.unsigned.apk: BUILD_TYPE := release
out/apk/TildeFriends-arm-debug.unsigned.apk: BUILD_TYPE := debug
out/apk/TildeFriends-arm-release.unsigned.apk: BUILD_TYPE := release
out/apk/TildeFriends-x86-debug.unsigned.apk: BUILD_TYPE := debug
out/apk/TildeFriends-x86-release.unsigned.apk: BUILD_TYPE := release
out/apk/TildeFriends-debug.unsigned.apk: out/apk/classes.dex out/androiddebug/tildefriends out/androiddebug-x86_64/tildefriends $(RAW_FILES) out/apk/res.apk
out/apk/TildeFriends-release.unsigned.apk: out/apk/classes.dex out/androidrelease/tildefriends out/androidrelease-x86_64/tildefriends $(RAW_FILES) out/apk/res.apk
out/apk/TildeFriends-arm-debug.unsigned.apk: out/apk/classes.dex out/androiddebug/tildefriends out/androiddebug-armv7a/tildefriends $(RAW_FILES) out/apk/res.apk
out/apk/TildeFriends-arm-release.unsigned.apk: out/apk/classes.dex out/androidrelease/tildefriends out/androidrelease-armv7a/tildefriends $(RAW_FILES) out/apk/res.apk
out/apk/TildeFriends-x86-debug.unsigned.apk: out/apk/classes.dex out/androiddebug-x86_64/tildefriends out/androiddebug-x86/tildefriends $(RAW_FILES) out/apk/res.apk
out/apk/TildeFriends-x86-release.unsigned.apk: out/apk/classes.dex out/androidrelease-x86_64/tildefriends out/androidrelease-x86/tildefriends $(RAW_FILES) out/apk/res.apk
out/%.unsigned.apk:
@mkdir -p $(dir $@) out/apk$(BUILD_TYPE)/bin/aarch64/ out/apk$(BUILD_TYPE)/bin/x86_64/
out/apk/TildeFriends-arm-%.unsigned.apk:
@mkdir -p $(dir $@) out/apk-arm-$(BUILD_TYPE)/lib/arm64-v8a/ out/apk-arm-$(BUILD_TYPE)/lib/armeabi-v7a/
@echo [aapt] $@
@cp out/android$(BUILD_TYPE)/tildefriends out/apk$(BUILD_TYPE)/bin/aarch64/
@cp out/android$(BUILD_TYPE)-x86_64/tildefriends out/apk$(BUILD_TYPE)/bin/x86_64/
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk$(BUILD_TYPE)/bin/aarch64/tildefriends
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk$(BUILD_TYPE)/bin/x86_64/tildefriends
@cp out/android$(BUILD_TYPE)/tildefriends out/apk-arm-$(BUILD_TYPE)/lib/arm64-v8a/tildefriends.so
@cp out/android$(BUILD_TYPE)-armv7a/tildefriends out/apk-arm-$(BUILD_TYPE)/lib/armeabi-v7a/tildefriends.so
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-arm-$(BUILD_TYPE)/lib/arm64-v8a/tildefriends.so
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-arm-$(BUILD_TYPE)/lib/armeabi-v7a/tildefriends.so
@cp out/apk/res.apk $@
@cp out/apk/classes.dex out/apk$(BUILD_TYPE)/
@cd out/apk$(BUILD_TYPE) && zip -u ../../$@ -q -9 -r . && cd ../../
@zip -u $@ -q -9 -x '*.map' -r $(PACKAGE_DIRS) $(RAW_FILES)
@cp out/apk/classes.dex out/apk-arm-$(BUILD_TYPE)/
@cd out/apk-arm-$(BUILD_TYPE) && zip -u ../../$@ -q -9 -r . && cd ../../
@zip -u $@ -q -9 -x '*.map' --exclude=apps/gg* --exclude=apps/welcome* -r $(PACKAGE_DIRS) $(RAW_FILES)
out/apk/TildeFriends-x86-%.unsigned.apk:
@mkdir -p $(dir $@) out/apk-x86-$(BUILD_TYPE)/lib/x86_64/ out/apk-x86-$(BUILD_TYPE)/lib/x86/
@echo [aapt] $@
@cp out/android$(BUILD_TYPE)-x86_64/tildefriends out/apk-x86-$(BUILD_TYPE)/lib/x86_64/
@cp out/android$(BUILD_TYPE)-x86/tildefriends out/apk-x86-$(BUILD_TYPE)/lib/x86/
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-x86-$(BUILD_TYPE)/lib/x86_64/tildefriends
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-x86-$(BUILD_TYPE)/lib/x86/tildefriends
@cp out/apk/res.apk $@
@cp out/apk/classes.dex out/apk-x86-$(BUILD_TYPE)/
@cd out/apk-x86-$(BUILD_TYPE) && zip -u ../../$@ -q -9 -r . && cd ../../
@zip -u $@ -q -9 -x '*.map' --exclude=apps/gg* --exclude=apps/welcome* -r $(PACKAGE_DIRS) $(RAW_FILES)
out/%.apk: out/apk/%.unsigned.apk
@echo [apksigner] $(notdir $@)
@$(ANDROID_BUILD_TOOLS)/apksigner sign --ks keystore.jks --ks-key-alias androidKey --ks-pass pass:android --key-pass pass:android --out $@ $<
@$(ANDROID_BUILD_TOOLS)/apksigner sign --ks .keys/android.jks --ks-key-alias androidKey --ks-pass pass:android --key-pass pass:android --out $@ $<
apk: out/TildeFriends-release.apk
.PHONY: apk
release-apk: out/TildeFriends-arm-release.apk out/TildeFriends-x86-release.apk
.PHONY: release-apk
apkgo: out/TildeFriends-release.apk
@adb install $<
releaseapkgo: out/TildeFriends-arm-release.apk
@adb install -r $<
@adb shell am start com.unprompted.tildefriends/.MainActivity
.PHONY: apkgo
.PHONY: releaseapkgo
# iOS Support
out/%.app/Info.plist: src/ios/Info.plist
@mkdir -p $(dir $@)
@cp -v $< $@
out/%.app/tildefriends.png: src/ios/tildefriends.png
@mkdir -p $(dir $@)
@cp -v $< $@
out/%/data.zip: $(RAW_FILES)
@zip -u $@ -q -9 -x '*.map' -r $(PACKAGE_DIRS) $(RAW_FILES)
out/tildefriends-%.app/tildefriends: out/%/tildefriends out/tildefriends-%.app/Info.plist out/tildefriends-%.app/tildefriends.png out/tildefriends-%.app/data.zip
@mkdir -p $(dir $@)
@cp -v $< $@
ifeq ($(HAVE_LINUX_IOS),1)
@zsign -q -k .keys/apple.p12 -f -m src/ios/embedded.mobileprovision $(realpath $(dir $@))
endif
.SECONDARY:
out/tildefriends-%.ipa: out/tildefriends-ios%.app/tildefriends
@echo [ipa] $@
@rm -rf $@.tmp $@
@mkdir -p $@.tmp/Payload/tildefriends.app/
@cp -R $(dir $<)/* $@.tmp/Payload/tildefriends.app/
@cd $@.tmp/ && zip -u ../../$@ -q -9 -r ./
@rm -rf $@.tmp/
iossimdebug-app: out/tildefriends-iossimdebug.app/tildefriends
iossimrelease-app: out/tildefriends-iossimrelease.app/tildefriends
iosdebug-app: out/tildefriends-iosdebug.app/tildefriends
iosrelease-app: out/tildefriends-iosrelease.app/tildefriends
iosdebug-ipa: out/tildefriends-debug.ipa
iosrelease-ipa: out/tildefriends-release.ipa
.PHONY: iossimdebug-app iossimrelease-app iosdebug-app iosrelease-app
ios%go: out/tildefriends-ios%.app/tildefriends
ideviceinstaller -i $(realpath $(dir $<))
iossimdebuggo: out/tildefriends-iossimdebug.app/tildefriends
xcrun simctl install booted out/tildefriends-iossimdebug.app/
xcrun simctl launch booted com.unprompted.tildefriends
.PHONY: iossimdebuggo
apklog:
@adb logcat *:S tildefriends
@ -527,7 +748,7 @@ clean:
rm -rf $(BUILD_DIR)
.PHONY: clean
dist: apk
dist: release-apk iosrelease-ipa
@echo "[export] $$(svn info --show-item url)"
@rm -rf tildefriends-$(VERSION_NUMBER)
@svn export -q . tildefriends-$(VERSION_NUMBER)
@ -535,6 +756,7 @@ dist: apk
@echo "[tar] tildefriends-$(VERSION_NUMBER).tar.xz"
@tar \
--exclude=apps/gg* \
--exclude=apps/welcome* \
--exclude=deps/libbacktrace/Isaac.Newton-Opticks.txt \
--exclude=deps/libsodium/builds/msvc/vs* \
--exclude=deps/libsodium/builds/msvc/build \
@ -550,12 +772,17 @@ dist: apk
--exclude=deps/zlib/doc \
-caf tildefriends-$(VERSION_NUMBER).tar.xz tildefriends-$(VERSION_NUMBER)
@rm -rf tildefriends-$(VERSION_NUMBER)
@echo "[cp] TildeFriends-$(VERSION_NUMBER).apk"
@cp out/TildeFriends-release.apk TildeFriends-$(VERSION_NUMBER).apk
@echo "[cp] TildeFriends-x86-$(VERSION_NUMBER).apk"
@cp out/TildeFriends-x86-release.apk TildeFriends-x86-$(VERSION_NUMBER).apk
@echo "[cp] TildeFriends-arm-$(VERSION_NUMBER).apk"
@cp out/TildeFriends-arm-release.apk TildeFriends-arm-$(VERSION_NUMBER).apk
@echo "[cp] TildeFriends-$(VERSION_NUMBER).ipa"
@cp out/tildefriends-release.ipa TildeFriends-$(VERSION_NUMBER).ipa
.PHONY: dist
dist-test: dist
@tar -xf tildefriends-$(VERSION_NUMBER).tar.xz
@$(MAKE) -C tildefriends-$(VERSION_NUMBER)/ debug release
@docker build tildefriends-$(VERSION_NUMBER)/
@rm -rf tildefriends-$(VERSION_NUMBER)
.PHONY: dist-test

@ -15,8 +15,9 @@ Scuttlebutt, as well as a platform for writing and running web applications.
are kept up to date in the tree.
2. To build, run `make debug` or `make release`. An executable will be
generated in a subdirectory of `out/`.
3. `make windebug` or `make winrelease` will generate a windows executable
which might work.
3. It's possible to build for Android, iOS, and Windows on Linux, if you have
the right dependencies in the right places. `make windebug winrelease
iosdebug-ipa iosrelease-ipa apk`.
4. To build in docker, `docker build .`.
## Running

@ -37,6 +37,49 @@ Set the contents of the client &lt;iframe/&gt;.
* *String* **html** The HTML contents.
`;
docs['core.apps()'] = `
Gets a list of apps owned by the current user.
### Returns
*Array* An array of string names of the apps owned by the current user.
`;
docs['core.url'] = `
The url by which the running app is being invoked.
`;
docs['app.localStorageSet()'] = `
Set a value in browser local storage.
### Parameters
*String* **key** The localStorage key to set.
*String* **value** The localStorage value to set.
`;
docs['app.localStorageGet()'] = `
Gets a value from browser local storage.
### Parameters
*String* **key** The key with which the value was set.
### Returns
*String* The value, or undefined.
`;
docs['app.print()'] = `
Log information for debugging purposes to the server and to the connected browser console.
### Parameters
* ... Any args to print.
`;
docs['ssb.createIdentity()'] = `
Create a new SSB identity.
### Returns
*String* The created identity public key.
`;
docs['ssb.getIdentities()'] = `
Get all SSB identities owned by the current user.
### Returns
*Array* An array of public key strings.
`;
docs['ssb.sqlAsync()'] = `
Run an SQL query against the sqlite database.
### Parameters

@ -1,4 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🗺"
"emoji": "🗺",
"previous": "&0XSp+xdQwVtQ88bXzvWdH15Ex63hv5zUKTa4zx7HBGM=.sha256"
}

1
apps/gg/emojis.json Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -19,9 +19,10 @@ const k_store = {
'🛶': 10,
'🏠': 10,
'⛰': 10,
'🐠': 10,
};
const k_marker_snap = {x: 5, y: 1};
const k_marker_snap = {x: 5, y: 4};
class GgAppElement extends LitElement {
static get properties() {
@ -37,6 +38,7 @@ class GgAppElement extends LitElement {
url: {type: String},
currency: {type: Number},
to_build: {type: String},
emoji_of_the_day: {type: String},
};
}
@ -62,6 +64,11 @@ class GgAppElement extends LitElement {
async load() {
console.log('load');
let emojis = await (await fetch('emojis.json')).json();
emojis = Object.values(emojis).map(x => Object.values(x)).flat();
let today = new Date();
let date_index = today.getYear() * 356 + today.getMonth() * 31 + today.getDate();
this.emoji_of_the_day = emojis[(date_index * 123457) % emojis.length];
this.user = await tfrpc.rpc.getUser();
this.url = (await tfrpc.rpc.url()).split('?')[0];
try {
@ -367,11 +374,11 @@ class GgAppElement extends LitElement {
.openOn(this.leaflet);
}
snap_to_grid(latlng, fudge) {
let position = this.leaflet.options.crs.latLngToPoint(latlng, this.leaflet.getZoom());
snap_to_grid(latlng, fudge, zoom) {
let position = this.leaflet.options.crs.latLngToPoint(latlng, zoom ?? this.leaflet.getZoom());
position.x = Math.round(position.x / 16) * 16 + (fudge?.x ?? 0);
position.y = Math.round(position.y / 16) * 16 + (fudge?.y ?? 0);
position = this.leaflet.options.crs.pointToLatLng(position, this.leaflet.getZoom());
position = this.leaflet.options.crs.pointToLatLng(position, zoom ?? this.leaflet.getZoom());
return position;
}
@ -383,6 +390,12 @@ class GgAppElement extends LitElement {
}
}
on_zoom(event) {
if (this.marker) {
this.marker.setLatLng(this.snap_to_grid(this.marker.getLatLng(), k_marker_snap));
}
}
on_mouse_down(event) {
if (this.marker) {
this.marker.remove();
@ -407,6 +420,7 @@ class GgAppElement extends LitElement {
this.leaflet = L.map(map, {attributionControl: false, maxZoom: 16, bounceAtZoomLimits: false});
this.leaflet.on({contextmenu: this.on_click.bind(this)});
this.leaflet.on({click: this.on_mouse_down.bind(this)});
this.leaflet.on({zoom: this.on_zoom.bind(this)});
}
let self = this;
let grid_layer = L.GridLayer.extend({
@ -431,24 +445,26 @@ class GgAppElement extends LitElement {
self.draw_activity_to_tile(image_data, mini.width, mini.height, ul, lr, activity);
}
context.textAlign = 'left';
context.textBaseline = 'top';
context.textBaseline = 'bottom';
for (let x = 0; x < mini.width; x++) {
for (let y = 0; y < mini.height; y++) {
let start = (y * mini.width + x) * 4;
let pixel = self.color_to_emoji(image_data.data.slice(start, start + 4));
if (pixel) {
context.fillText(pixel, x * size.x / mini.width, y * size.y / mini.height);
//context.fillRect(x * size.x / mini.width, y * size.y / mini.height, size.x / mini.width, size.y / mini.height);
context.fillText(pixel, x * size.x / mini.width, y * size.y / mini.height + mini.height);
}
}
}
for (let placed of self.placed_emojis) {
let position = self.leaflet.options.crs.latLngToPoint(self.snap_to_grid(placed.position), coords.z);
let position = self.leaflet.options.crs.latLngToPoint(self.snap_to_grid(placed.position, undefined, coords.z), coords.z);
let tile_x = Math.floor(position.x / size.x);
let tile_y = Math.floor(position.y / size.y);
position.x = position.x - tile_x * size.x;
position.y = position.y - tile_y * size.y;
if (tile_x == coords.x && tile_y == coords.y) {
context.fillText(placed.emoji, position.x, position.y);
//context.fillRect(position.x, position.y, size.x / mini.width, size.y / mini.height);
context.fillText(placed.emoji, position.x, position.y + mini.height);
}
}
return tile;
@ -704,10 +720,12 @@ class GgAppElement extends LitElement {
}
render_store() {
let store = Object.assign({}, k_store);
store[this.emoji_of_the_day] = 5;
return html`
<h2>Store</h2>
<div><b>Your balance:</b> ${this.currency}</div>
${Object.entries(k_store).map(this.render_store_item.bind(this))}
${Object.entries(store).map(this.render_store_item.bind(this))}
`;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,4 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🐌"
"emoji": "🐌",
"previous": "&HrGonbL2IZBtoP3zh1glMUO16+PZ4/t0KFTpkNMYoPI=.sha256"
}

@ -18,6 +18,12 @@ tfrpc.register(async function databaseSet(key, value) {
tfrpc.register(async function createIdentity() {
return ssb.createIdentity();
});
tfrpc.register(async function getServerIdentity() {
return ssb.getServerIdentity();
});
tfrpc.register(async function setServerFollowingMe(id, following) {
return ssb.setServerFollowingMe(id, following);
});
tfrpc.register(async function getIdentities() {
return ssb.getIdentities();
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -11,6 +11,7 @@ class TfProfileElement extends LitElement {
id: {type: String},
users: {type: Object},
size: {type: Number},
server_follows_me: {type: Boolean},
};
}
@ -24,6 +25,23 @@ class TfProfileElement extends LitElement {
this.id = null;
this.users = {};
this.size = 0;
this.server_follows_me = undefined;
}
async initial_load() {
this.server_follows_me = undefined;
let server_id = await tfrpc.rpc.getServerIdentity();
let followed = await tfrpc.rpc.query(`
SELECT json_extract(content, '$.following') AS following FROM messages
WHERE author = ? AND
json_extract(content, '$.type') = 'contact' AND
json_extract(content, '$.contact') = ? ORDER BY sequence DESC LIMIT 1
`, [server_id, this.whoami]);
let is_followed = false;
for (let row of followed) {
is_followed = row.following != 0;
}
this.server_follows_me = is_followed;
}
modify(change) {
@ -103,7 +121,23 @@ class TfProfileElement extends LitElement {
input.click();
}
async server_follow_me(follow) {
try {
await tfrpc.rpc.setServerFollowingMe(this.whoami, follow);
} catch (e) {
console.log(e);
}
try {
await this.initial_load();
} catch (e) {
console.log(e);
}
}
render() {
if (this.id == this.whoami && this.editing && this.server_follows_me === undefined) {
this.initial_load();
}
let self = this;
let profile = this.users[this.id] || {};
tfrpc.rpc.query(
@ -116,9 +150,16 @@ class TfProfileElement extends LitElement {
let block;
if (this.id === this.whoami) {
if (this.editing) {
let server_follow;
if (this.server_follows_me === true) {
server_follow = html`<input type="button" value="Server, Stop Following Me" @click=${() => this.server_follow_me(false)}></input>`;
} else if (this.server_follows_me === false) {
server_follow = html`<input type="button" value="Server, Follow Me" @click=${() => this.server_follow_me(true)}></input>`;
}
edit = html`
<input type="button" value="Save Profile" @click=${this.save_edits}></input>
<input type="button" value="Discard" @click=${this.discard_edits}></input>
${server_follow}
`;
} else {
edit = html`<input type="button" value="Edit Profile" @click=${this.edit}></input>`;
@ -139,27 +180,27 @@ class TfProfileElement extends LitElement {
html`<input type="button" value="Block" @click=${this.block}></input>`;
}
let edit_profile = this.editing ? html`
<div style="flex: 1 0 50%">
<div style="flex: 1 0 50%; display: flex; flex-direction: column">
<div>
<label for="name">Name:</label>
<input type="text" id="name" value=${this.editing.name} @input=${event => this.editing = Object.assign({}, this.editing, {name: event.srcElement.value})}></input>
</div>
<div>
<div><label for="description">Description:</label></div>
<textarea id="description" @input=${event => this.editing = Object.assign({}, this.editing, {description: event.srcElement.value})}>${this.editing.description}</textarea>
</div>
<div><label for="description">Description:</label></div>
<textarea style="flex: 1 0" id="description" @input=${event => this.editing = Object.assign({}, this.editing, {description: event.srcElement.value})}>${this.editing.description}</textarea>
<div>
<label for="public_web_hosting">Public Web Hosting:</label>
<input type="checkbox" id="public_web_hosting" value=${this.editing.public_web_hosting} @input=${event => this.editing = Object.assign({}, this.editing, {publicWebHosting: event.srcElement.checked})}></input>
</div>
<input type="button" value="Attach Image" @click=${this.attach_image}></input>
<div>
<input type="button" value="Attach Image" @click=${this.attach_image}></input>
</div>
</div>` : null;
let image = typeof(profile.image) == 'string' ? profile.image : profile.image?.link;
image = this.editing?.image ?? image;
let description = this.editing?.description ?? profile.description;
return html`<div style="border: 2px solid black; background-color: rgba(255, 255, 255, 0.2); padding: 16px">
<tf-user id=${this.id} .users=${this.users}></tf-user> (${tfutils.human_readable_size(this.size)})
<div style="display: flex; flex-direction: row">
<div style="display: flex; flex-direction: row; gap: 1em">
${edit_profile}
<div style="flex: 1 0 50%">
<div><img src=${'/' + image + '/view'} style="width: 256px; height: auto"></img></div>

5
apps/welcome.json Normal file

@ -0,0 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "👋",
"previous": "&xc5LDQt9bWp6wrPxZhvSGiMXjweSK1YbO2DReM7/2ic=.sha256"
}

5
apps/welcome/app.js Normal file

@ -0,0 +1,5 @@
async function main() {
await app.setDocument(utf8Decode(getFile('index.html')));
}
main();

6
apps/welcome/brands.min.css vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

9
apps/welcome/fontawesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

173
apps/welcome/index.html Normal file

@ -0,0 +1,173 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="w3.css">
<link rel="stylesheet" href="fontawesome.min.css">
<link rel="stylesheet" href="regular.min.css">
<link rel="stylesheet" href="solid.min.css">
<link rel="stylesheet" href="brands.min.css">
<style>
body,h1,h2,h3,h4,h5 {font-family: "Poppins", sans-serif}
body {font-size: 16px;}
img {margin-bottom: -8px;}
.mySlides {display: none;}
</style>
<base target="_top">
</head>
<body class="w3-content w3-black" style="max-width:1500px;">
<!-- The App Section -->
<div class="w3-padding-64 w3-white">
<div class="w3-row-padding">
<div class="w3-col l8 m6 w3-padding-32">
<h1 class="w3-jumbo">
<b>😎 Tilde Friends</b>
</h1>
<h1 class="w3-xxlarge w3-text-green"><b>Make apps and friends from the comfort of your web browser.</b></h1>
<p>Tilde Friends is a platform for building, running, and sharing web applications.</p>
<p>Available for lots of devices:
<i class="fa-brands fa-linux w3-xlarge"></i>
<i class="fa-brands fa-android w3-xlarge"></i>
<i class="fa-brands fa-apple w3-xlarge"></i>
<i class="fa fa-mobile-screen w3-xlarge"></i>
<i class="fa-brands fa-windows w3-xlarge"></i>
</p>
<a class="w3-button w3-black w3-padding-large" href="https://www.tildefriends.net/~cory/releases/"><i class="fa fa-download"></i> Download</a>
<a class="w3-button w3-black w3-padding-large" href="https://www.tildefriends.net/~cory/apps/"><i class="fa fa-link"></i> Try Some Apps</a>
</div>
<div class="w3-col l4 m6">
<img src="tildefriends.png" class="w3-image w3-right w3-hide-small">
</div>
</div>
</div>
<!-- SSB Section -->
<div class="w3-light-grey">
<div class="w3-row-padding w3-padding-64 ">
<div class="w3-col l4 m6 s4">
<a href="https://scuttlebutt.nz/"><img class="w3-image w3-round-large" src="ssb.png" alt="Secure Scuttlebutt"></a>
</div>
<div class="w3-col l8 m6" style="height: auto">
<h1 class="w3-jumbo"><b>Built for Sharing</b></h1>
<p>
Tilde Friends participates in the <a href="https://scuttlebutt.nz/">Secure Scuttlebutt</a> distributed social network.
</p>
<p>
Share apps with friends. Discover new apps made by enemies. Post pictures of your coffee. Or just lurk.
</p>
<p>
The social network integration provides tools for connecting with other people world-wide
while still allowing apps and everything to operate offline.
</p>
</div>
</div>
</div>
<!-- Editor Section -->
<div class="w3-container w3-padding-64 w3-light-blue">
<div class="w3-row-padding">
<div class="w3-col l8 m6">
<h1 class="w3-jumbo"><b>Edit Anything</b></h1>
<i class="fa fa-pen-to-square w3-left w3-jumbo w3-text-gray" style="padding: 32px"></i>
<p>
See that <code><b>edit</b></code> link near the top left corner of this page? It's there for
every Tilde Friends app, so you can modify and see your changes right away.
</p>
<p>
It's kind of like a wiki, but for code!
</p>
</div>
</div>
</div>
<!-- Sandbox Section -->
<div class="w3-padding-64 w3-grey">
<div class="w3-row-padding">
<div class="w3-col">
<h1 class="w3-jumbo" style="text-align: right"><b>Sandbox Security</b></h1>
<i class="fa fa-road-barrier w3-right w3-jumbo w3-text-yellow" style="padding: 32px"></i>
<p>
Tilde Friends tries to make sure apps can be trusted using similar techniques to how web
browsers and operating systems do it.
</p>
<p>
This is all a work in progress, and it varies by platform, so don't give it all your
innermost secrets yet, but do kick its tires and
<a href="mailto:cory@tildefriends.net">share</a> any surprises you find.
</p>
</div>
</div>
</div>
<!-- Technlology Section -->
<div class="w3-container w3-padding-64 w3-light-grey w3-center">
<h1 class="w3-jumbo"><b>Trusted Technology</b></h1>
<p>Tilde Friends is built using boring, trusted tech.</p>
<p>Though of course for building Tilde Friends apps, you are free to use whatever fits.</p>
<div class="w3-row" style="margin-top:64px">
<a href="https://en.wikipedia.org/wiki/C_(programming_language)" class="w3-col s3">
<i class="fa fa-c w3-text-blue w3-jumbo"></i>
<p>C</p>
</a>
<a href="https://bellard.org/quickjs/" class="w3-col s3">
<i class="fa-brands fa-js w3-text-orange w3-jumbo"></i>
<p>QuickJS</p>
</a>
<a href="https://www.sqlite.org/" class="w3-col s3">
<i class="fa fa-database w3-text-red w3-jumbo"></i>
<p>SQLite</p>
</a>
<a href="https://libuv.org/" class="w3-col s3">
<i class="fa fa-bolt w3-text-yellow w3-jumbo"></i>
<p>libuv</p>
</a>
</div>
<div class="w3-row" style="margin-top:64px">
<a href="https://www.zlib.net/" class="w3-col s3">
<i class="fa fa-file-zipper w3-text-cyan w3-jumbo"></i>
<p>zlib</p>
</a>
<a href="https://doc.libsodium.org/" class="w3-col s3">
<i class="fa fa-lock w3-text-purple w3-jumbo"></i>
<p>libsodium</p>
</a>
<a href="https://www.openssl.org/" class="w3-col s3">
<i class="fa fa-shield-halved w3-text-green w3-jumbo"></i>
<p>OpenSSL </p>
</a>
<a href="https://github.com/ianlancetaylor/libbacktrace" class="w3-col s3">
<i class="fa fa-burst w3-text-pink w3-jumbo"></i>
<p>libbacktrace</p>
</a>
</div>
<div class="w3-row" style="margin-top:64px">
<a href="https://codemirror.net/5/" class="w3-col s3">
<i class="fa fa-keyboard w3-text-indigo w3-jumbo"></i>
<p>CodeMirror</p>
</a>
<a href="https://speedscope.app/" class="w3-col s3">
<i class="fa fa-microscope w3-text-orange w3-jumbo"></i>
<p>Speedscope</p>
</a>
<a href="https://lit.dev/" class="w3-col s3">
<i class="fa fa-fire w3-text-cyan w3-jumbo"></i>
<p>Lit</p>
</a>
<a href="https://www.gnu.org/software/make/" class="w3-col s3">
<i class="fa fa-hammer w3-text-teal w3-jumbo"></i>
<p>GNU Make</p>
</a>
</div>
</div>
<!-- Footer -->
<footer class="w3-container w3-padding-32 w3-blue-grey w3-center w3-xlarge">
<p class="w3-medium">This page and Tilde Friends itself was made by Cory mostly in coffee shops and a local pizza place.</p>
</footer>
</body>
</html>

6
apps/welcome/regular.min.css vendored Normal file

@ -0,0 +1,6 @@
/*!
* Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.woff2) format("woff2"),url(fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}

6
apps/welcome/solid.min.css vendored Normal file

@ -0,0 +1,6 @@
/*!
* Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.woff2) format("woff2"),url(fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}

BIN
apps/welcome/ssb.png Normal file

Binary file not shown.

After

(image error) Size: 50 KiB

Binary file not shown.

After

(image error) Size: 141 KiB

235
apps/welcome/w3.css Normal file

@ -0,0 +1,235 @@
/* W3.CSS 4.15 December 2020 by Jan Egil and Borge Refsnes */
html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
audio:not([controls]){display:none;height:0}[hidden],template{display:none}
a{background-color:transparent}a:active,a:hover{outline-width:0}
abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
button,input{overflow:visible}button,select{text-transform:none}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
[type=checkbox],[type=radio]{padding:0}
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
[type=search]::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
/* End extract */
html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}
.w3-serif{font-family:serif}.w3-sans-serif{font-family:sans-serif}.w3-cursive{font-family:cursive}.w3-monospace{font-family:monospace}
h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin:10px 0}.w3-wide{letter-spacing:4px}
hr{border:0;border-top:1px solid #eee;margin:20px 0}
.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px}
.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
.w3-btn,.w3-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.w3-disabled,.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:0.3}.w3-disabled *,:disabled *{pointer-events:none}
.w3-btn.w3-disabled:hover,.w3-btn:disabled:hover{box-shadow:none}
.w3-badge,.w3-tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.w3-badge{border-radius:50%}
.w3-ul{list-style-type:none;padding:0;margin:0}.w3-ul li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ul li:last-child{border-bottom:none}
.w3-tooltip,.w3-display-container{position:relative}.w3-tooltip .w3-text{display:none}.w3-tooltip:hover .w3-text{display:inline-block}
.w3-ripple:active{opacity:0.5}.w3-ripple{transition:opacity 0s}
.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
.w3-select{padding:9px 0;width:100%;border:none;border-bottom:1px solid #ccc}
.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.w3-dropdown-hover:hover .w3-dropdown-content{display:block}
.w3-dropdown-hover:first-child,.w3-dropdown-click:hover{background-color:#ccc;color:#000}
.w3-dropdown-hover:hover > .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000}
.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px}
.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%}
.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%}
.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px}
.w3-main,#main{transition:margin-left .4s}
.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto}
.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left}
.w3-bar .w3-button{white-space:normal}
.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%}
.w3-responsive{display:block;overflow-x:auto}
.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before,
.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both}
.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%}
.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%}
.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%}
.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%}
@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%}
.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%}
.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}}
@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%}
.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%}
.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}}
.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px}
.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px}
.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell}
.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom}
.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important}
@media (max-width:1205px){.w3-auto{max-width:95%}}
@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px}
.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative}
.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center}
.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}}
@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}}
@media (min-width:993px){.w3-modal-content{width:900px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}}
@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}}
@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}}
.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0}
.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0}
.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0}
.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none}
.w3-display-position{position:absolute}
.w3-circle{border-radius:50%}
.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px}
.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px}
.w3-container,.w3-panel{padding:0.01em 16px}.w3-panel{margin-top:16px;margin-bottom:16px}
.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px}
.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}
.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1}
.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75}
.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)}
.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)}
.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)}
.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important}
.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important}
.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important}
.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important}
.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important}
.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important}
.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important}
.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important}
.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important}
.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important}
.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important}
.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important}
.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important}
.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important}
.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important}
.w3-padding-top-64{padding-top:64px!important}.w3-padding-top-48{padding-top:48px!important}
.w3-padding-top-32{padding-top:32px!important}.w3-padding-top-24{padding-top:24px!important}
.w3-left{float:left!important}.w3-right{float:right!important}
.w3-button:hover{color:#000!important;background-color:#ccc!important}
.w3-transparent,.w3-hover-none:hover{background-color:transparent!important}
.w3-hover-none:hover{box-shadow:none!important}
/* Colors */
.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important}
.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important}
.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
.w3-blue-grey,.w3-hover-blue-grey:hover,.w3-blue-gray,.w3-hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important}
.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important}
.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important}
.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important}
.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important}
.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important}
.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important}
.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important}
.w3-light-grey,.w3-hover-light-grey:hover,.w3-light-gray,.w3-hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important}
.w3-dark-grey,.w3-hover-dark-grey:hover,.w3-dark-gray,.w3-hover-dark-gray:hover{color:#fff!important;background-color:#616161!important}
.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important}
.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important}
.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important}
.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important}
.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important}
.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important}
.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important}
.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important}
.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important}
.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important}
.w3-text-blue-grey,.w3-hover-text-blue-grey:hover,.w3-text-blue-gray,.w3-hover-text-blue-gray:hover{color:#607d8b!important}
.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important}
.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important}
.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important}
.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important}
.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important}
.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important}
.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important}
.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important}
.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important}
.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important}
.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important}
.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important}
.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important}
.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important}
.w3-text-white,.w3-hover-text-white:hover{color:#fff!important}
.w3-text-black,.w3-hover-text-black:hover{color:#000!important}
.w3-text-grey,.w3-hover-text-grey:hover,.w3-text-gray,.w3-hover-text-gray:hover{color:#757575!important}
.w3-text-light-grey,.w3-hover-text-light-grey:hover,.w3-text-light-gray,.w3-hover-text-light-gray:hover{color:#f1f1f1!important}
.w3-text-dark-grey,.w3-hover-text-dark-grey:hover,.w3-text-dark-gray,.w3-hover-text-dark-gray:hover{color:#3a3a3a!important}
.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important}
.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important}
.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important}
.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important}
.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important}
.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important}
.w3-border-blue-grey,.w3-hover-border-blue-grey:hover,.w3-border-blue-gray,.w3-hover-border-blue-gray:hover{border-color:#607d8b!important}
.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important}
.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important}
.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important}
.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important}
.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important}
.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important}
.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important}
.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important}
.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important}
.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important}
.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important}
.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important}
.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important}
.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important}
.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important}
.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important}
.w3-border-grey,.w3-hover-border-grey:hover,.w3-border-gray,.w3-hover-border-gray:hover{border-color:#9e9e9e!important}
.w3-border-light-grey,.w3-hover-border-light-grey:hover,.w3-border-light-gray,.w3-hover-border-light-gray:hover{border-color:#f1f1f1!important}
.w3-border-dark-grey,.w3-hover-border-dark-grey:hover,.w3-border-dark-gray,.w3-hover-border-dark-gray:hover{border-color:#616161!important}
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffcc!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}

@ -110,10 +110,10 @@ class TfNavigationElement extends LitElement {
${Object.keys(this.permissions).map(key => html`
<div>
<span>${key}</span>: ${this.permissions[key] ? '✅ Allowed' : '❌ Denied'}
<button @click=${() => this.reset_permission(key)}>Reset</button>
<button @click=${() => this.reset_permission(key)} style='min-width: 3em; min-height: 3em">Reset</button>
</div>
`)}
<button @click=${() => this.show_permissions = false}>Close</button>
<button @click=${() => this.show_permissions = false} style="min-width: 3em; min-height: 3em">Close</button>
</div>
</div>
`;
@ -149,12 +149,14 @@ class TfFilesElement extends LitElement {
return {
current: {type: String},
files: {type: Object},
dropping: {type: Number},
};
}
constructor() {
super();
this.files = {};
this.dropping = 0;
}
file_click(file) {
@ -178,6 +180,34 @@ class TfFilesElement extends LitElement {
return html`<div class="${classes.join(' ')}" @click=${x => this.file_click(file)}>${file}</div>`;
}
async drop(event) {
event.preventDefault();
event.stopPropagation();
this.dropping = 0;
for (let file of event.dataTransfer.files) {
let buffer = await file.arrayBuffer();
let text = new TextDecoder('latin1').decode(buffer);
gFiles[file.name] = {
doc: new CodeMirror.Doc(text, guessMode(file.name)),
buffer: buffer,
generation: -1,
isNew: true,
};
gCurrentFile = file.name;
}
openFile(gCurrentFile);
updateFiles();
}
drag_enter(event) {
this.dropping++;
event.preventDefault();
}
drag_leave(event) {
this.dropping--;
}
render() {
let self = this;
return html`
@ -202,9 +232,15 @@ class TfFilesElement extends LitElement {
content: '*';
}
</style>
<div>
<div @drop=${this.drop} @dragenter=${this.drag_enter} @dragleave=${this.drag_leave}>
${Object.keys(this.files).sort().map(x => self.render_file(x))}
</div>
<div
?hidden=${this.dropping == 0}
@drop=${this.drop} @dragenter=${this.drag_enter} @dragleave=${this.drag_leave}
style="text-align: center; vertical-align: middle; outline: 16px solid red; margin: -8px; background-color: rgba(255, 0, 0, 0.5); position: absolute; left: 16px; top: 16px; width: calc(100% - 16px); height: calc(100% - 16px); z-index: 1000">
Drop File(s)
</div>
`;
}
}
@ -414,7 +450,7 @@ function edit() {
{tagName: "script", attributes: {src: "/codemirror/xml.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/htmlmixed.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/lint.js"}},
{tagName: "script", attributes: {src: "/codemirror/jshint.js"}},
{tagName: "script", attributes: {src: "/codemirror/jshint.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/javascript-lint.min.js"}},
], function() {
load().catch(function(error) {
@ -437,7 +473,8 @@ function guessMode(name) {
function loadFile(name, id) {
return fetch('/' + id + '/view').then(function(response) {
if (!response.ok) {
throw new Error('Request failed: ' + response.status + ' ' + response.statusText);
alert(`Request failed for ${name}: ${response.status} ${response.statusText}`);
return 'missing file!';
}
return response.text();
}).then(function(text) {
@ -523,6 +560,9 @@ function save(save_to) {
document.getElementById("save").disabled = true;
if (gCurrentFile) {
gFiles[gCurrentFile].doc = gEditor.getDoc();
if (!gFiles[gCurrentFile].isNew && !gFiles[gCurrentFile].doc.isClean(gFiles[gCurrentFile].doc.changeGeneration())) {
delete gFiles[gCurrentFile].buffer;
}
}
let save_path = save_to;
@ -538,17 +578,18 @@ function save(save_to) {
let promises = [];
for (let name of Object.keys(gFiles)) {
let file = gFiles[name];
if (file.doc.isClean(file.generation)) {
if (!file.isNew && file.doc.isClean(file.generation)) {
continue;
}
delete file.id;
delete file.isNew;
promises.push(fetch('/save', {
method: 'POST',
headers: {
'Content-Type': 'text/plain',
'Content-Type': 'application/binary',
},
body: file.doc.getValue(),
body: file.buffer ?? file.doc.getValue(),
}).then(function(response) {
if (!response.ok) {
throw new Error('Saving "' + name + '": ' + response.status + ' ' + response.statusText);
@ -716,6 +757,8 @@ function api_requestPermission(permission, id) {
div = document.createElement('div');
for (let option of k_options) {
let button = document.createElement('button');
button.style.minWidth = '3em';
button.style.minHeight = '3em';
button.innerText = option.text;
button.id = option.id;
button.onclick = function() {
@ -976,6 +1019,9 @@ function openFile(name) {
let oldDoc = gEditor.swapDoc(newDoc);
if (gFiles[gCurrentFile]) {
gFiles[gCurrentFile].doc = oldDoc;
if (!gFiles[gCurrentFile].isNew && gFiles[gCurrentFile].doc.isClean(oldDoc.generation)) {
delete gFiles[gCurrentFile].buffer;
}
}
gCurrentFile = name;
updateFiles();
@ -990,7 +1036,6 @@ function updateFiles() {
}]));
files.current = gCurrentFile;
}
gEditor.focus();
}

@ -74,12 +74,12 @@ const k_global_settings = {
},
blob_fetch_age_seconds: {
type: 'integer',
default_value: (platform() == 'android' ? 0.5 * 365 * 24 * 60 * 60 : undefined),
default_value: (platform() == 'android' || platform() == 'iphone' ? 0.5 * 365 * 24 * 60 * 60 : undefined),
description: 'Only blobs mentioned more recently than this age will be automatically fetched.',
},
blob_expire_age_seconds: {
type: 'integer',
default_value: (platform() == 'android' ? 1.0 * 365 * 24 * 60 * 60 : undefined),
default_value: (platform() == 'android' || platform() == 'iphone' ? 1.0 * 365 * 24 * 60 * 60 : undefined),
description: 'Blobs older than this will be automatically deleted.',
},
};
@ -421,6 +421,13 @@ async function getProcessBlob(blobId, key, options) {
return ssb.privateMessageDecrypt(process.credentials.session.name, id, message);
}
};
imports.ssb.setServerFollowingMe = function(id, following) {
if (process.credentials &&
process.credentials.session &&
process.credentials.session.name) {
return ssb.setServerFollowingMe(process.credentials.session.name, id, following);
}
};
imports.fetch = function(url, options) {
return http.fetch(url, options, gGlobalSettings.fetch_hosts);
}
@ -683,7 +690,7 @@ async function blobHandler(request, response, blobId, uri) {
if (!uri) {
response.writeHead(303, {"Location": (request.client.tls ? 'https://' : 'http://') + request.headers.host + blobId + '/', "Content-Length": "0"});
response.end(data);
response.end();
return;
}
@ -735,7 +742,6 @@ async function blobHandler(request, response, blobId, uri) {
} else if (uri == "/save") {
let match;
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
let newBlobId = await ssb.blobStore(request.body);
let user = match[1];
let appName = match[2];
let credentials = auth.query(request.headers);
@ -743,6 +749,25 @@ async function blobHandler(request, response, blobId, uri) {
(credentials.session.name == user ||
(credentials.permissions.administration && user == 'core'))) {
let database = new Database(user);
let app_object = JSON.parse(utf8Decode(request.body));
let previous_id = database.get('path:' + appName);
if (previous_id) {
try {
let previous_object = JSON.parse(utf8Decode(await ssb.blobGet(previous_id)));
delete previous_object.previous;
delete app_object.previous;
if (JSON.stringify(previous_object) == JSON.stringify(app_object)) {
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
response.end("/" + previous_id);
return;
}
} catch {
}
}
app_object.previous = previous_id;
let newBlobId = await ssb.blobStore(JSON.stringify(app_object));
let apps = new Set();
let apps_original = database.get('apps');
try {
@ -757,14 +782,13 @@ async function blobHandler(request, response, blobId, uri) {
database.set('apps', apps);
}
database.set('path:' + appName, newBlobId);
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
response.end("/" + newBlobId);
} else {
response.writeHead(401, {"Content-Type": "text/plain; charset=utf-8"});
response.end("401 Unauthorized");
return;
}
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
response.end("/" + newBlobId);
} else if (blobId === '') {
let newBlobId = await ssb.blobStore(request.body);
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});

@ -120,6 +120,7 @@ function Response(request, client) {
let requestVersion = request.version.split("/")[1].split(".");
let responseVersion = (requestVersion[0] >= 1 && requestVersion[0] >= 1) ? "1.1" : "1.0";
let headerString = "HTTP/" + responseVersion + " " + status + " " + reason + "\r\n";
headers['Server'] = `Tilde Friends/${version().number}`;
for (let i in headers) {
headerString += i + ": " + headers[i] + "\r\n";
lowerHeaders[i.toLowerCase()] = headers[i];
@ -445,7 +446,7 @@ function handleConnection(client) {
if (result == -2) {
/* More. */
} else {
badRequest(client, 'Bad request.');
badRequest(client, `Bad request(parse=${result}, length=${inputBuffer.length - data.length}).`);
return;
}
} else if (typeof result === 'object') {

@ -1 +1 @@
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(t,e){function i(t){clearTimeout(n.doRedraw),n.doRedraw=setTimeout(function(){n.redraw()},t)}this.cm=t,this.options=e,this.buttonHeight=e.scrollButtonHeight||t.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=t.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var n=this;t.on("refresh",this.resizeHandler=function(){clearTimeout(n.doUpdate),n.doUpdate=setTimeout(function(){n.computeScale()&&i(20)},100)}),t.on("markerAdded",this.resizeHandler),t.on("markerCleared",this.resizeHandler),!1!==e.listenForChanges&&t.on("changes",this.changeHandler=function(){i(250)})}t.defineExtension("annotateScrollbar",function(t){return new e(this,t="string"==typeof t?{className:t}:t)}),t.defineOption("scrollButtonHeight",0),e.prototype.computeScale=function(){var t=this.cm,t=(t.getWrapperElement().clientHeight-t.display.barHeight-2*this.buttonHeight)/t.getScrollerElement().scrollHeight;if(t!=this.hScale)return this.hScale=t,!0},e.prototype.update=function(t){this.annotations=t,this.redraw()},e.prototype.redraw=function(t){!1!==t&&this.computeScale();var n=this.cm,e=this.hScale,i=document.createDocumentFragment(),o=this.annotations,r=n.getOption("lineWrapping"),a=r&&1.5*n.defaultTextHeight(),s=null,h=null;function l(t,e){var i;return s!=t.line&&(s=t.line,h=n.getLineHandle(t.line),(i=n.getLineHandleVisualStart(h))!=h)&&(s=n.getLineNumber(i),h=i),h.widgets&&h.widgets.length||r&&h.height>a?n.charCoords(t,"local")[e?"top":"bottom"]:n.heightAtLine(h,"local")+(e?0:h.height)}var d=n.lastLine();if(n.display.barWidth)for(var c,p=0;p<o.length;p++){var u=o[p];if(!(u.to.line>d)){for(var m,f,g=c||l(u.from,!0)*e,H=l(u.to,!1)*e;p<o.length-1&&!(o[p+1].to.line>d)&&!(H+.9<(c=l(o[p+1].from,!0)*e));)H=l((u=o[++p]).to,!1)*e;H!=g&&(m=Math.max(H-g,3),(f=i.appendChild(document.createElement("div"))).style.cssText="position: absolute; right: 0px; width: "+Math.max(n.display.barWidth-1,2)+"px; top: "+(g+this.buttonHeight)+"px; height: "+m+"px",f.className=this.options.className,u.id)&&f.setAttribute("annotation-id",u.id)}}this.div.textContent="",this.div.appendChild(i)},e.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("changes",this.changeHandler),this.div.parentNode.removeChild(this.div)}});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(t,e){function i(t){clearTimeout(n.doRedraw),n.doRedraw=setTimeout(function(){n.redraw()},t)}this.cm=t,this.options=e,this.buttonHeight=e.scrollButtonHeight||t.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=t.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var n=this;t.on("refresh",this.resizeHandler=function(){clearTimeout(n.doUpdate),n.doUpdate=setTimeout(function(){n.computeScale()&&i(20)},100)}),t.on("markerAdded",this.resizeHandler),t.on("markerCleared",this.resizeHandler),!1!==e.listenForChanges&&t.on("changes",this.changeHandler=function(){i(250)})}t.defineExtension("annotateScrollbar",function(t){return new e(this,t="string"==typeof t?{className:t}:t)}),t.defineOption("scrollButtonHeight",0),e.prototype.computeScale=function(){var t=this.cm,t=(t.getWrapperElement().clientHeight-t.display.barHeight-2*this.buttonHeight)/t.getScrollerElement().scrollHeight;if(t!=this.hScale)return this.hScale=t,!0},e.prototype.update=function(t){this.annotations=t,this.redraw()},e.prototype.redraw=function(t){!1!==t&&this.computeScale();var n=this.cm,e=this.hScale,i=document.createDocumentFragment(),o=this.annotations,r=n.getOption("lineWrapping"),a=r&&1.5*n.defaultTextHeight(),s=null,h=null;function l(t,e){var i;return s!=t.line&&(s=t.line,h=n.getLineHandle(t.line),(i=n.getLineHandleVisualStart(h))!=h&&(s=n.getLineNumber(i),h=i)),h.widgets&&h.widgets.length||r&&h.height>a?n.charCoords(t,"local")[e?"top":"bottom"]:n.heightAtLine(h,"local")+(e?0:h.height)}var d=n.lastLine();if(n.display.barWidth)for(var c,p=0;p<o.length;p++){var u=o[p];if(!(u.to.line>d)){for(var m,f,g=c||l(u.from,!0)*e,H=l(u.to,!1)*e;p<o.length-1&&!(o[p+1].to.line>d)&&!(H+.9<(c=l(o[p+1].from,!0)*e));)H=l((u=o[++p]).to,!1)*e;H!=g&&(m=Math.max(H-g,3),(f=i.appendChild(document.createElement("div"))).style.cssText="position: absolute; right: 0px; width: "+Math.max(n.display.barWidth-1,2)+"px; top: "+(g+this.buttonHeight)+"px; height: "+m+"px",f.className=this.options.className,u.id&&f.setAttribute("annotation-id",u.id))}}this.div.textContent="",this.div.appendChild(i)},e.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("changes",this.changeHandler),this.div.parentNode.removeChild(this.div)}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(s){function f(e,o,n){var e=e.getWrapperElement(),t=e.appendChild(document.createElement("div"));return t.className=n?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof o?t.innerHTML=o:t.appendChild(o),s.addClass(e,"dialog-opened"),t}function p(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}s.defineExtension("openDialog",function(e,o,n){n=n||{},p(this,null);var t=f(this,e,n.bottom),i=!1,r=this;function u(e){"string"==typeof e?l.value=e:i||(i=!0,s.rmClass(t.parentNode,"dialog-opened"),t.parentNode.removeChild(t),r.focus(),n.onClose&&n.onClose(t))}var l=t.getElementsByTagName("input")[0];return l?(l.focus(),n.value&&(l.value=n.value,!1!==n.selectValueOnOpen)&&l.select(),n.onInput&&s.on(l,"input",function(e){n.onInput(e,l.value,u)}),n.onKeyUp&&s.on(l,"keyup",function(e){n.onKeyUp(e,l.value,u)}),s.on(l,"keydown",function(e){n&&n.onKeyDown&&n.onKeyDown(e,l.value,u)||((27==e.keyCode||!1!==n.closeOnEnter&&13==e.keyCode)&&(l.blur(),s.e_stop(e),u()),13==e.keyCode&&o(l.value,e))}),!1!==n.closeOnBlur&&s.on(t,"focusout",function(e){null!==e.relatedTarget&&u()})):(e=t.getElementsByTagName("button")[0])&&(s.on(e,"click",function(){u(),r.focus()}),!1!==n.closeOnBlur&&s.on(e,"blur",u),e.focus()),u}),s.defineExtension("openConfirm",function(e,o,n){p(this,null);var t=f(this,e,n&&n.bottom),i=t.getElementsByTagName("button"),r=!1,u=this,l=1;function a(){r||(r=!0,s.rmClass(t.parentNode,"dialog-opened"),t.parentNode.removeChild(t),u.focus())}i[0].focus();for(var c=0;c<i.length;++c){var d=i[c];!function(o){s.on(d,"click",function(e){s.e_preventDefault(e),a(),o&&o(u)})}(o[c]),s.on(d,"blur",function(){--l,setTimeout(function(){l<=0&&a()},200)}),s.on(d,"focus",function(){++l})}}),s.defineExtension("openNotification",function(e,o){p(this,r);var n,t=f(this,e,o&&o.bottom),i=!1,e=o&&void 0!==o.duration?o.duration:5e3;function r(){i||(i=!0,clearTimeout(n),s.rmClass(t.parentNode,"dialog-opened"),t.parentNode.removeChild(t))}return s.on(t,"click",function(e){s.e_preventDefault(e),r()}),e&&(n=setTimeout(r,e)),r})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(s){function f(e,o,n){var e=e.getWrapperElement(),t=e.appendChild(document.createElement("div"));return t.className=n?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof o?t.innerHTML=o:t.appendChild(o),s.addClass(e,"dialog-opened"),t}function p(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}s.defineExtension("openDialog",function(e,o,n){n=n||{},p(this,null);var t=f(this,e,n.bottom),i=!1,r=this;function u(e){"string"==typeof e?l.value=e:i||(i=!0,s.rmClass(t.parentNode,"dialog-opened"),t.parentNode.removeChild(t),r.focus(),n.onClose&&n.onClose(t))}var l=t.getElementsByTagName("input")[0];return l?(l.focus(),n.value&&(l.value=n.value,!1!==n.selectValueOnOpen&&l.select()),n.onInput&&s.on(l,"input",function(e){n.onInput(e,l.value,u)}),n.onKeyUp&&s.on(l,"keyup",function(e){n.onKeyUp(e,l.value,u)}),s.on(l,"keydown",function(e){n&&n.onKeyDown&&n.onKeyDown(e,l.value,u)||((27==e.keyCode||!1!==n.closeOnEnter&&13==e.keyCode)&&(l.blur(),s.e_stop(e),u()),13==e.keyCode&&o(l.value,e))}),!1!==n.closeOnBlur&&s.on(t,"focusout",function(e){null!==e.relatedTarget&&u()})):(e=t.getElementsByTagName("button")[0])&&(s.on(e,"click",function(){u(),r.focus()}),!1!==n.closeOnBlur&&s.on(e,"blur",u),e.focus()),u}),s.defineExtension("openConfirm",function(e,o,n){p(this,null);var t=f(this,e,n&&n.bottom),i=t.getElementsByTagName("button"),r=!1,u=this,l=1;function a(){r||(r=!0,s.rmClass(t.parentNode,"dialog-opened"),t.parentNode.removeChild(t),u.focus())}i[0].focus();for(var c=0;c<i.length;++c){var d=i[c];!function(o){s.on(d,"click",function(e){s.e_preventDefault(e),a(),o&&o(u)})}(o[c]),s.on(d,"blur",function(){--l,setTimeout(function(){l<=0&&a()},200)}),s.on(d,"focus",function(){++l})}}),s.defineExtension("openNotification",function(e,o){p(this,r);var n,t=f(this,e,o&&o.bottom),i=!1,e=o&&void 0!==o.duration?o.duration:5e3;function r(){i||(i=!0,clearTimeout(n),s.rmClass(t.parentNode,"dialog-opened"),t.parentNode.removeChild(t))}return s.on(t,"click",function(e){s.e_preventDefault(e),r()}),e&&(n=setTimeout(r,e)),r})});

@ -1 +1 @@
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],t):t(CodeMirror)}(function(m){"use strict";var l={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};var a={};function d(t,e){e=t.match(a[t=e]||(a[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")));return e?/^\s*(.*?)\s*$/.exec(e[2])[1]:""}function g(t,e){return new RegExp((e?"^":"")+"</\\s*"+t+"\\s*>","i")}function o(t,e){for(var a in t)for(var n=e[a]||(e[a]=[]),l=t[a],o=l.length-1;0<=o;o--)n.unshift(l[o])}m.defineMode("htmlmixed",function(i,t){var c=m.getMode(i,{name:"xml",htmlMode:!0,multilineTagIndentFactor:t.multilineTagIndentFactor,multilineTagIndentPastTag:t.multilineTagIndentPastTag,allowMissingTagName:t.allowMissingTagName}),s={},e=t&&t.tags,a=t&&t.scriptTypes;if(o(l,s),e&&o(e,s),a)for(var n=a.length-1;0<=n;n--)s.script.unshift(["type",a[n].matches,a[n].mode]);function u(t,e){var a,o,r,n=c.token(t,e.htmlState),l=/\btag\b/.test(n);return l&&!/[<>\s\/]/.test(t.current())&&(a=e.htmlState.tagName&&e.htmlState.tagName.toLowerCase())&&s.hasOwnProperty(a)?e.inTag=a+" ":e.inTag&&l&&/>$/.test(t.current())?(a=/^([\S]+) (.*)/.exec(e.inTag),e.inTag=null,l=">"==t.current()&&function(t,e){for(var a=0;a<t.length;a++){var n=t[a];if(!n[0]||n[1].test(d(e,n[0])))return n[2]}}(s[a[1]],a[2]),l=m.getMode(i,l),o=g(a[1],!0),r=g(a[1],!1),e.token=function(t,e){return t.match(o,!1)?(e.token=u,e.localState=e.localMode=null):(a=t,n=r,t=e.localMode.token(t,e.localState),e=a.current(),-1<(l=e.search(n))?a.backUp(e.length-l):e.match(/<\/?$/)&&(a.backUp(e.length),a.match(n,!1)||a.match(e)),t);var a,n,l},e.localMode=l,e.localState=m.startState(l,c.indent(e.htmlState,"",""))):e.inTag&&(e.inTag+=t.current(),t.eol())&&(e.inTag+=" "),n}return{startState:function(){return{token:u,inTag:null,localMode:null,localState:null,htmlState:m.startState(c)}},copyState:function(t){var e;return t.localState&&(e=m.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:e,htmlState:m.copyState(c,t.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(t,e,a){return!t.localMode||/^\s*<\//.test(e)?c.indent(t.htmlState,e,a):t.localMode.indent?t.localMode.indent(t.localState,e,a):m.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},"xml","javascript","css"),m.defineMIME("text/html","htmlmixed")});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],t):t(CodeMirror)}(function(m){"use strict";var l={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};var a={};function d(t,e){e=t.match(a[t=e]||(a[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")));return e?/^\s*(.*?)\s*$/.exec(e[2])[1]:""}function g(t,e){return new RegExp((e?"^":"")+"</\\s*"+t+"\\s*>","i")}function o(t,e){for(var a in t)for(var n=e[a]||(e[a]=[]),l=t[a],o=l.length-1;0<=o;o--)n.unshift(l[o])}m.defineMode("htmlmixed",function(i,t){var c=m.getMode(i,{name:"xml",htmlMode:!0,multilineTagIndentFactor:t.multilineTagIndentFactor,multilineTagIndentPastTag:t.multilineTagIndentPastTag,allowMissingTagName:t.allowMissingTagName}),s={},e=t&&t.tags,a=t&&t.scriptTypes;if(o(l,s),e&&o(e,s),a)for(var n=a.length-1;0<=n;n--)s.script.unshift(["type",a[n].matches,a[n].mode]);function u(t,e){var a,o,r,n=c.token(t,e.htmlState),l=/\btag\b/.test(n);return l&&!/[<>\s\/]/.test(t.current())&&(a=e.htmlState.tagName&&e.htmlState.tagName.toLowerCase())&&s.hasOwnProperty(a)?e.inTag=a+" ":e.inTag&&l&&/>$/.test(t.current())?(a=/^([\S]+) (.*)/.exec(e.inTag),e.inTag=null,l=">"==t.current()&&function(t,e){for(var a=0;a<t.length;a++){var n=t[a];if(!n[0]||n[1].test(d(e,n[0])))return n[2]}}(s[a[1]],a[2]),l=m.getMode(i,l),o=g(a[1],!0),r=g(a[1],!1),e.token=function(t,e){return t.match(o,!1)?(e.token=u,e.localState=e.localMode=null):(a=t,n=r,t=e.localMode.token(t,e.localState),e=a.current(),-1<(l=e.search(n))?a.backUp(e.length-l):e.match(/<\/?$/)&&(a.backUp(e.length),a.match(n,!1)||a.match(e)),t);var a,n,l},e.localMode=l,e.localState=m.startState(l,c.indent(e.htmlState,"",""))):e.inTag&&(e.inTag+=t.current(),t.eol()&&(e.inTag+=" ")),n}return{startState:function(){return{token:u,inTag:null,localMode:null,localState:null,htmlState:m.startState(c)}},copyState:function(t){var e;return t.localState&&(e=m.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:e,htmlState:m.copyState(c,t.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(t,e,a){return!t.localMode||/^\s*<\//.test(e)?c.indent(t.htmlState,e,a):t.localMode.indent?t.localMode.indent(t.localState,e,a):m.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},"xml","javascript","css"),m.defineMIME("text/html","htmlmixed")});

File diff suppressed because one or more lines are too long

32076
deps/codemirror/jshint.js vendored

File diff suppressed because one or more lines are too long

1
deps/codemirror/jshint.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,20 +1,20 @@
LINKS="
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/dialog/dialog.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/dialog/dialog.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/edit/trailingspace.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/lint/javascript-lint.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/scroll/annotatescrollbar.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/search/matchesonscrollbar.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/search/matchesonscrollbar.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/search/search.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/addon/search/searchcursor.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/codemirror.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/codemirror.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/mode/css/css.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/mode/htmlmixed/htmlmixed.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/mode/javascript/javascript.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/mode/xml/xml.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.14/theme/base16-dark.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/dialog/dialog.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/dialog/dialog.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/edit/trailingspace.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/lint/javascript-lint.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/scroll/annotatescrollbar.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/search/matchesonscrollbar.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/search/matchesonscrollbar.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/search/search.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/addon/search/searchcursor.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/codemirror.min.css
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/codemirror.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/mode/css/css.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/mode/htmlmixed/htmlmixed.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/mode/javascript/javascript.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/mode/xml/xml.min.js
https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.15/theme/base16-dark.min.css
"
for link in $LINKS; do

File diff suppressed because one or more lines are too long

@ -249,6 +249,7 @@ check_DATA += allocfail.dSYM
endif USE_DSYMUTIL
if HAVE_ELF
if HAVE_BUILDID
if HAVE_OBJCOPY_DEBUGLINK
b2test_SOURCES = $(btest_SOURCES)
@ -272,6 +273,7 @@ MAKETESTS += b3test_dwz_buildid
endif HAVE_DWZ
endif HAVE_OBJCOPY_DEBUGLINK
endif HAVE_BUILDID
endif HAVE_ELF
btest_SOURCES = btest.c testlib.c
@ -369,6 +371,25 @@ ztest_alloc_CFLAGS = $(ztest_CFLAGS)
BUILDTESTS += ztest_alloc
zstdtest_SOURCES = zstdtest.c testlib.c
zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
zstdtest_LDADD = libbacktrace.la
zstdtest_alloc_LDADD = libbacktrace_alloc.la
if HAVE_ZSTD
zstdtest_LDADD += -lzstd
zstdtest_alloc_LDADD += -lzstd
endif
zstdtest_LDADD += $(CLOCK_GETTIME_LINK)
zstdtest_alloc_LDADD += $(CLOCK_GETTIME_LINK)
BUILDTESTS += zstdtest
zstdtest_alloc_SOURCES = $(zstdtest_SOURCES)
zstdtest_alloc_CFLAGS = $(zstdtest_CFLAGS)
BUILDTESTS += zstdtest_alloc
endif HAVE_ELF
edtest_SOURCES = edtest.c edtest2_build.c testlib.c
@ -451,6 +472,17 @@ ctesta_LDADD = libbacktrace.la
BUILDTESTS += ctestg ctesta
if HAVE_COMPRESSED_DEBUG_ZSTD
ctestzstd_SOURCES = btest.c testlib.c
ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS)
ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd
ctestzstd_LDADD = libbacktrace.la
BUILDTESTS += ctestzstd
endif
ctestg_alloc_SOURCES = $(ctestg_SOURCES)
ctestg_alloc_CFLAGS = $(ctestg_CFLAGS)
ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS)

@ -122,8 +122,8 @@ build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
$(am__EXEEXT_14)
TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_14)
$(am__EXEEXT_16)
TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_16)
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_1 = libbacktrace_elf_for_test.la
@NATIVE_TRUE@am__append_2 = test_elf_32 test_elf_64 test_macho \
@NATIVE_TRUE@ test_xcoff_32 test_xcoff_64 test_pecoff \
@ -134,36 +134,39 @@ TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_14)
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ btest.dSYM btest_alloc.dSYM \
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ stest.dSYM stest_alloc.dSYM \
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ edtest.dSYM edtest_alloc.dSYM
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_6 = b2test
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_7 = b2test_buildid
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_8 = b3test
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_9 = b3test_dwz_buildid
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_6 = b2test
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_7 = b2test_buildid
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_8 = b3test
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_9 = b3test_dwz_buildid
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_10 = btest_lto
@NATIVE_TRUE@am__append_11 = btest_alloc stest stest_alloc
@HAVE_DWZ_TRUE@@NATIVE_TRUE@am__append_12 = btest_dwz
@HAVE_DWZ_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_13 = btest_dwz_gnudebuglink
@HAVE_ELF_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_14 = -lz
@HAVE_ELF_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_15 = -lz
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_16 = ztest ztest_alloc
@NATIVE_TRUE@am__append_17 = edtest edtest_alloc
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_18 = ttest ttest_alloc
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_19 = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_16 = ztest ztest_alloc zstdtest \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc
@HAVE_ELF_TRUE@@HAVE_ZSTD_TRUE@@NATIVE_TRUE@am__append_17 = -lzstd
@HAVE_ELF_TRUE@@HAVE_ZSTD_TRUE@@NATIVE_TRUE@am__append_18 = -lzstd
@NATIVE_TRUE@am__append_19 = edtest edtest_alloc
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_20 = ttest ttest_alloc
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_21 = \
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ ttest.dSYM \
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ ttest_alloc.dSYM
@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_20 = btest_gnudebuglink
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_21 = ctestg ctesta \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg_alloc \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__append_22 = dwarf5 dwarf5_alloc
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_23 = \
@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_22 = btest_gnudebuglink
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_23 = ctestg ctesta
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@am__append_24 = ctestzstd
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_25 = ctestg_alloc ctesta_alloc
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__append_26 = dwarf5 dwarf5_alloc
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_27 = \
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ dwarf5.dSYM \
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ dwarf5_alloc.dSYM
@NATIVE_TRUE@am__append_24 = mtest
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_25 = mtest.dSYM
@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@am__append_26 = mtest_minidebug
@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_27 = -llzma
@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_28 = -llzma
@HAVE_ELF_TRUE@am__append_29 = xztest xztest_alloc
@NATIVE_TRUE@am__append_28 = mtest
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_29 = mtest.dSYM
@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@am__append_30 = mtest_minidebug
@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_31 = -llzma
@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_32 = -llzma
@HAVE_ELF_TRUE@am__append_33 = xztest xztest_alloc
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/lead-dot.m4 \
@ -246,8 +249,8 @@ libbacktrace_noformat_la_OBJECTS = \
$(am_libbacktrace_noformat_la_OBJECTS)
@NATIVE_TRUE@am_libbacktrace_noformat_la_rpath =
@NATIVE_TRUE@am__EXEEXT_1 = allocfail$(EXEEXT)
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
@NATIVE_TRUE@am__EXEEXT_4 = test_elf_32$(EXEEXT) test_elf_64$(EXEEXT) \
@NATIVE_TRUE@ test_macho$(EXEEXT) test_xcoff_32$(EXEEXT) \
@NATIVE_TRUE@ test_xcoff_64$(EXEEXT) test_pecoff$(EXEEXT) \
@ -257,23 +260,26 @@ libbacktrace_noformat_la_OBJECTS = \
@NATIVE_TRUE@am__EXEEXT_6 = btest_alloc$(EXEEXT) stest$(EXEEXT) \
@NATIVE_TRUE@ stest_alloc$(EXEEXT)
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_7 = ztest$(EXEEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc$(EXEEXT)
@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc$(EXEEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest$(EXEEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc$(EXEEXT)
@NATIVE_TRUE@am__EXEEXT_8 = edtest$(EXEEXT) edtest_alloc$(EXEEXT)
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_9 = ttest$(EXEEXT) \
@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc$(EXEEXT)
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_10 = \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg$(EXEEXT) \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta$(EXEEXT) \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg_alloc$(EXEEXT) \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta$(EXEEXT)
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@am__EXEEXT_11 = ctestzstd$(EXEEXT)
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_12 = ctestg_alloc$(EXEEXT) \
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc$(EXEEXT)
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__EXEEXT_11 = dwarf5$(EXEEXT) \
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__EXEEXT_13 = dwarf5$(EXEEXT) \
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc$(EXEEXT)
@NATIVE_TRUE@am__EXEEXT_12 = mtest$(EXEEXT)
@HAVE_ELF_TRUE@am__EXEEXT_13 = xztest$(EXEEXT) xztest_alloc$(EXEEXT)
am__EXEEXT_14 = $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
@NATIVE_TRUE@am__EXEEXT_14 = mtest$(EXEEXT)
@HAVE_ELF_TRUE@am__EXEEXT_15 = xztest$(EXEEXT) xztest_alloc$(EXEEXT)
am__EXEEXT_16 = $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
$(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
$(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \
$(am__EXEEXT_13)
$(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15)
@NATIVE_TRUE@am_allocfail_OBJECTS = allocfail-allocfail.$(OBJEXT) \
@NATIVE_TRUE@ allocfail-testlib.$(OBJEXT)
allocfail_OBJECTS = $(am_allocfail_OBJECTS)
@ -284,17 +290,17 @@ allocfail_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@NATIVE_TRUE@am__objects_2 = b2test-btest.$(OBJEXT) \
@NATIVE_TRUE@ b2test-testlib.$(OBJEXT)
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b2test_OBJECTS = $(am__objects_2)
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b2test_OBJECTS = $(am__objects_2)
b2test_OBJECTS = $(am_b2test_OBJECTS)
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_DEPENDENCIES = libbacktrace_elf_for_test.la
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_DEPENDENCIES = libbacktrace_elf_for_test.la
b2test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(b2test_CFLAGS) $(CFLAGS) \
$(b2test_LDFLAGS) $(LDFLAGS) -o $@
@NATIVE_TRUE@am__objects_3 = b3test-btest.$(OBJEXT) \
@NATIVE_TRUE@ b3test-testlib.$(OBJEXT)
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b3test_OBJECTS = $(am__objects_3)
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b3test_OBJECTS = $(am__objects_3)
b3test_OBJECTS = $(am_b3test_OBJECTS)
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_DEPENDENCIES = libbacktrace_elf_for_test.la
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_DEPENDENCIES = libbacktrace_elf_for_test.la
b3test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(b3test_CFLAGS) $(CFLAGS) \
$(b3test_LDFLAGS) $(LDFLAGS) -o $@
@ -355,6 +361,13 @@ ctestg_alloc_OBJECTS = $(am_ctestg_alloc_OBJECTS)
ctestg_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestg_alloc_CFLAGS) \
$(CFLAGS) $(ctestg_alloc_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@am_ctestzstd_OBJECTS = ctestzstd-btest.$(OBJEXT) \
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ ctestzstd-testlib.$(OBJEXT)
ctestzstd_OBJECTS = $(am_ctestzstd_OBJECTS)
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_DEPENDENCIES = libbacktrace.la
ctestzstd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestzstd_CFLAGS) \
$(CFLAGS) $(ctestzstd_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am_dwarf5_OBJECTS = \
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5-btest.$(OBJEXT) \
@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5-testlib.$(OBJEXT)
@ -525,6 +538,30 @@ xztest_alloc_OBJECTS = $(am_xztest_alloc_OBJECTS)
xztest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(xztest_alloc_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_ELF_TRUE@@NATIVE_TRUE@am_zstdtest_OBJECTS = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest-zstdtest.$(OBJEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest-testlib.$(OBJEXT)
zstdtest_OBJECTS = $(am_zstdtest_OBJECTS)
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_DEPENDENCIES = libbacktrace.la \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1)
zstdtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(zstdtest_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__objects_13 = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc-zstdtest.$(OBJEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc-testlib.$(OBJEXT)
@HAVE_ELF_TRUE@@NATIVE_TRUE@am_zstdtest_alloc_OBJECTS = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__objects_13)
zstdtest_alloc_OBJECTS = $(am_zstdtest_alloc_OBJECTS)
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_DEPENDENCIES = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1)
zstdtest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(zstdtest_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
$@
@HAVE_ELF_TRUE@@NATIVE_TRUE@am_ztest_OBJECTS = ztest-ztest.$(OBJEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest-testlib.$(OBJEXT)
ztest_OBJECTS = $(am_ztest_OBJECTS)
@ -534,11 +571,11 @@ ztest_OBJECTS = $(am_ztest_OBJECTS)
ztest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(ztest_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__objects_13 = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__objects_14 = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc-ztest.$(OBJEXT) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc-testlib.$(OBJEXT)
@HAVE_ELF_TRUE@@NATIVE_TRUE@am_ztest_alloc_OBJECTS = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__objects_13)
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__objects_14)
ztest_alloc_OBJECTS = $(am_ztest_alloc_OBJECTS)
@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_DEPENDENCIES = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \
@ -588,7 +625,7 @@ SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \
$(b2test_SOURCES) $(b3test_SOURCES) $(btest_SOURCES) \
$(btest_alloc_SOURCES) $(btest_lto_SOURCES) $(ctesta_SOURCES) \
$(ctesta_alloc_SOURCES) $(ctestg_SOURCES) \
$(ctestg_alloc_SOURCES) $(dwarf5_SOURCES) \
$(ctestg_alloc_SOURCES) $(ctestzstd_SOURCES) $(dwarf5_SOURCES) \
$(dwarf5_alloc_SOURCES) $(edtest_SOURCES) \
$(edtest_alloc_SOURCES) $(mtest_SOURCES) $(stest_SOURCES) \
$(stest_alloc_SOURCES) $(test_elf_32_SOURCES) \
@ -597,7 +634,8 @@ SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \
$(test_xcoff_32_SOURCES) $(test_xcoff_64_SOURCES) \
$(ttest_SOURCES) $(ttest_alloc_SOURCES) $(unittest_SOURCES) \
$(unittest_alloc_SOURCES) $(xztest_SOURCES) \
$(xztest_alloc_SOURCES) $(ztest_SOURCES) \
$(xztest_alloc_SOURCES) $(zstdtest_SOURCES) \
$(zstdtest_alloc_SOURCES) $(ztest_SOURCES) \
$(ztest_alloc_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@ -988,18 +1026,18 @@ libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
# Add a test to this variable if you want it to be built as a Makefile
# target and run.
MAKETESTS = $(am__append_7) $(am__append_9) $(am__append_12) \
$(am__append_13) $(am__append_20) $(am__append_26)
$(am__append_13) $(am__append_22) $(am__append_30)
# Add a test to this variable if you want it to be built as a program,
# with SOURCES, etc., and run.
BUILDTESTS = $(am__append_2) $(am__append_10) $(am__append_11) \
$(am__append_16) $(am__append_17) $(am__append_18) \
$(am__append_21) $(am__append_22) $(am__append_24) \
$(am__append_29)
$(am__append_16) $(am__append_19) $(am__append_20) \
$(am__append_23) $(am__append_24) $(am__append_25) \
$(am__append_26) $(am__append_28) $(am__append_33)
# Add a file to this variable if you want it to be built for testing.
check_DATA = $(am__append_5) $(am__append_19) $(am__append_23) \
$(am__append_25)
check_DATA = $(am__append_5) $(am__append_21) $(am__append_27) \
$(am__append_29)
# Flags to use when compiling test programs.
libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
@ -1054,14 +1092,14 @@ libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
@NATIVE_TRUE@allocfail_SOURCES = allocfail.c testlib.c
@NATIVE_TRUE@allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@NATIVE_TRUE@allocfail_LDADD = libbacktrace_instrumented_alloc.la
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_SOURCES = $(btest_SOURCES)
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDFLAGS = -Wl,--build-id
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDADD = libbacktrace_elf_for_test.la
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_SOURCES = $(btest_SOURCES)
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDFLAGS = -Wl,--build-id
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDADD = libbacktrace_elf_for_test.la
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_SOURCES = $(btest_SOURCES)
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDFLAGS = -Wl,--build-id
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDADD = libbacktrace_elf_for_test.la
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_SOURCES = $(btest_SOURCES)
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDFLAGS = -Wl,--build-id
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDADD = libbacktrace_elf_for_test.la
@NATIVE_TRUE@btest_SOURCES = btest.c testlib.c
@NATIVE_TRUE@btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
@NATIVE_TRUE@btest_LDADD = libbacktrace.la
@ -1087,6 +1125,17 @@ libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK)
@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_SOURCES = $(ztest_SOURCES)
@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_CFLAGS = $(ztest_CFLAGS)
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_SOURCES = zstdtest.c testlib.c
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_LDADD = libbacktrace.la \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_17) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK)
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_LDADD = \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_18) \
@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK)
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_SOURCES = $(zstdtest_SOURCES)
@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_CFLAGS = $(zstdtest_CFLAGS)
@NATIVE_TRUE@edtest_SOURCES = edtest.c edtest2_build.c testlib.c
@NATIVE_TRUE@edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@NATIVE_TRUE@edtest_LDADD = libbacktrace.la
@ -1107,6 +1156,10 @@ libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDADD = libbacktrace.la
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_SOURCES = btest.c testlib.c
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS)
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd
@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_LDADD = libbacktrace.la
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_SOURCES = $(ctestg_SOURCES)
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_CFLAGS = $(ctestg_CFLAGS)
@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS)
@ -1126,12 +1179,12 @@ libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
@NATIVE_TRUE@mtest_LDADD = libbacktrace.la
@HAVE_ELF_TRUE@xztest_SOURCES = xztest.c testlib.c
@HAVE_ELF_TRUE@xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
@HAVE_ELF_TRUE@xztest_LDADD = libbacktrace.la $(am__append_27) \
@HAVE_ELF_TRUE@xztest_LDADD = libbacktrace.la $(am__append_31) \
@HAVE_ELF_TRUE@ $(CLOCK_GETTIME_LINK)
@HAVE_ELF_TRUE@xztest_alloc_SOURCES = $(xztest_SOURCES)
@HAVE_ELF_TRUE@xztest_alloc_CFLAGS = $(xztest_CFLAGS)
@HAVE_ELF_TRUE@xztest_alloc_LDADD = libbacktrace_alloc.la \
@HAVE_ELF_TRUE@ $(am__append_28) $(CLOCK_GETTIME_LINK)
@HAVE_ELF_TRUE@ $(am__append_32) $(CLOCK_GETTIME_LINK)
CLEANFILES = \
$(MAKETESTS) $(BUILDTESTS) *.debug elf_for_test.c edtest2_build.c \
gen_edtest2_build \
@ -1305,6 +1358,10 @@ ctestg_alloc$(EXEEXT): $(ctestg_alloc_OBJECTS) $(ctestg_alloc_DEPENDENCIES) $(EX
@rm -f ctestg_alloc$(EXEEXT)
$(AM_V_CCLD)$(ctestg_alloc_LINK) $(ctestg_alloc_OBJECTS) $(ctestg_alloc_LDADD) $(LIBS)
ctestzstd$(EXEEXT): $(ctestzstd_OBJECTS) $(ctestzstd_DEPENDENCIES) $(EXTRA_ctestzstd_DEPENDENCIES)
@rm -f ctestzstd$(EXEEXT)
$(AM_V_CCLD)$(ctestzstd_LINK) $(ctestzstd_OBJECTS) $(ctestzstd_LDADD) $(LIBS)
dwarf5$(EXEEXT): $(dwarf5_OBJECTS) $(dwarf5_DEPENDENCIES) $(EXTRA_dwarf5_DEPENDENCIES)
@rm -f dwarf5$(EXEEXT)
$(AM_V_CCLD)$(dwarf5_LINK) $(dwarf5_OBJECTS) $(dwarf5_LDADD) $(LIBS)
@ -1385,6 +1442,14 @@ xztest_alloc$(EXEEXT): $(xztest_alloc_OBJECTS) $(xztest_alloc_DEPENDENCIES) $(EX
@rm -f xztest_alloc$(EXEEXT)
$(AM_V_CCLD)$(xztest_alloc_LINK) $(xztest_alloc_OBJECTS) $(xztest_alloc_LDADD) $(LIBS)
zstdtest$(EXEEXT): $(zstdtest_OBJECTS) $(zstdtest_DEPENDENCIES) $(EXTRA_zstdtest_DEPENDENCIES)
@rm -f zstdtest$(EXEEXT)
$(AM_V_CCLD)$(zstdtest_LINK) $(zstdtest_OBJECTS) $(zstdtest_LDADD) $(LIBS)
zstdtest_alloc$(EXEEXT): $(zstdtest_alloc_OBJECTS) $(zstdtest_alloc_DEPENDENCIES) $(EXTRA_zstdtest_alloc_DEPENDENCIES)
@rm -f zstdtest_alloc$(EXEEXT)
$(AM_V_CCLD)$(zstdtest_alloc_LINK) $(zstdtest_alloc_OBJECTS) $(zstdtest_alloc_LDADD) $(LIBS)
ztest$(EXEEXT): $(ztest_OBJECTS) $(ztest_DEPENDENCIES) $(EXTRA_ztest_DEPENDENCIES)
@rm -f ztest$(EXEEXT)
$(AM_V_CCLD)$(ztest_LINK) $(ztest_OBJECTS) $(ztest_LDADD) $(LIBS)
@ -1528,6 +1593,18 @@ ctestg_alloc-testlib.o: testlib.c
ctestg_alloc-testlib.obj: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
ctestzstd-btest.o: btest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
ctestzstd-btest.obj: btest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
ctestzstd-testlib.o: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
ctestzstd-testlib.obj: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
dwarf5-btest.o: btest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
@ -1768,6 +1845,30 @@ xztest_alloc-testlib.o: testlib.c
xztest_alloc-testlib.obj: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
zstdtest-zstdtest.o: zstdtest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-zstdtest.o `test -f 'zstdtest.c' || echo '$(srcdir)/'`zstdtest.c
zstdtest-zstdtest.obj: zstdtest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-zstdtest.obj `if test -f 'zstdtest.c'; then $(CYGPATH_W) 'zstdtest.c'; else $(CYGPATH_W) '$(srcdir)/zstdtest.c'; fi`
zstdtest-testlib.o: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
zstdtest-testlib.obj: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
zstdtest_alloc-zstdtest.o: zstdtest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-zstdtest.o `test -f 'zstdtest.c' || echo '$(srcdir)/'`zstdtest.c
zstdtest_alloc-zstdtest.obj: zstdtest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-zstdtest.obj `if test -f 'zstdtest.c'; then $(CYGPATH_W) 'zstdtest.c'; else $(CYGPATH_W) '$(srcdir)/zstdtest.c'; fi`
zstdtest_alloc-testlib.o: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
zstdtest_alloc-testlib.obj: testlib.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
ztest-ztest.o: ztest.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c
@ -2183,6 +2284,20 @@ ztest_alloc.log: ztest_alloc$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
zstdtest.log: zstdtest$(EXEEXT)
@p='zstdtest$(EXEEXT)'; \
b='zstdtest'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
zstdtest_alloc.log: zstdtest_alloc$(EXEEXT)
@p='zstdtest_alloc$(EXEEXT)'; \
b='zstdtest_alloc'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
edtest.log: edtest$(EXEEXT)
@p='edtest$(EXEEXT)'; \
b='edtest'; \
@ -2225,6 +2340,13 @@ ctesta.log: ctesta$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
ctestzstd.log: ctestzstd$(EXEEXT)
@p='ctestzstd$(EXEEXT)'; \
b='ctestzstd'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
ctestg_alloc.log: ctestg_alloc$(EXEEXT)
@p='ctestg_alloc$(EXEEXT)'; \
b='ctestg_alloc'; \

@ -20,6 +20,10 @@
don't. */
#undef HAVE_DECL_STRNLEN
/* Define to 1 if you have the declaration of `_pgmptr', and to 0 if you
don't. */
#undef HAVE_DECL__PGMPTR
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
@ -103,6 +107,9 @@
/* Define if -lz is available. */
#undef HAVE_ZLIB
/* Define if -lzstd is available. */
#undef HAVE_ZSTD
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR

@ -651,8 +651,14 @@ HAVE_OBJCOPY_DEBUGLINK_FALSE
HAVE_OBJCOPY_DEBUGLINK_TRUE
READELF
OBJCOPY
HAVE_COMPRESSED_DEBUG_ZSTD_FALSE
HAVE_COMPRESSED_DEBUG_ZSTD_TRUE
HAVE_ZSTD_FALSE
HAVE_ZSTD_TRUE
HAVE_COMPRESSED_DEBUG_FALSE
HAVE_COMPRESSED_DEBUG_TRUE
HAVE_BUILDID_FALSE
HAVE_BUILDID_TRUE
HAVE_ZLIB_FALSE
HAVE_ZLIB_TRUE
HAVE_DWARF5_FALSE
@ -11272,7 +11278,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11275 "configure"
#line 11281 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -11378,7 +11384,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11381 "configure"
#line 11387 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -12511,6 +12517,19 @@ $as_echo "#define HAVE_GETEXECNAME 1" >>confdefs.h
fi
# Check for _pgmptr variable, contains the executable filename on windows
ac_fn_c_check_decl "$LINENO" "_pgmptr" "ac_cv_have_decl__pgmptr" "$ac_includes_default"
if test "x$ac_cv_have_decl__pgmptr" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL__PGMPTR $ac_have_decl
_ACEOF
# Check for sysctl definitions.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for KERN_PROC" >&5
@ -12770,6 +12789,44 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --build-id is supported" >&5
$as_echo_n "checking whether --build-id is supported... " >&6; }
if ${libbacktrace_cv_ld_buildid+:} false; then :
$as_echo_n "(cached) " >&6
else
LDFLAGS_hold=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,--build-id"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
libbacktrace_cv_ld_buildid=yes
else
libbacktrace_cv_ld_buildid=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$LDFLAGS_hold
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_ld_buildid" >&5
$as_echo "$libbacktrace_cv_ld_buildid" >&6; }
if test "$libbacktrace_cv_ld_buildid" = yes; then
HAVE_BUILDID_TRUE=
HAVE_BUILDID_FALSE='#'
else
HAVE_BUILDID_TRUE='#'
HAVE_BUILDID_FALSE=
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --compress-debug-sections is supported" >&5
$as_echo_n "checking whether --compress-debug-sections is supported... " >&6; }
if ${libgo_cv_ld_compress+:} false; then :
@ -12808,6 +12865,95 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZSTD_compress in -lzstd" >&5
$as_echo_n "checking for ZSTD_compress in -lzstd... " >&6; }
if ${ac_cv_lib_zstd_ZSTD_compress+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lzstd $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char ZSTD_compress ();
int
main ()
{
return ZSTD_compress ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_zstd_ZSTD_compress=yes
else
ac_cv_lib_zstd_ZSTD_compress=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zstd_ZSTD_compress" >&5
$as_echo "$ac_cv_lib_zstd_ZSTD_compress" >&6; }
if test "x$ac_cv_lib_zstd_ZSTD_compress" = xyes; then :
$as_echo "#define HAVE_ZSTD 1" >>confdefs.h
fi
if test "$ac_cv_lib_zstd_ZSTD_compress" = yes; then
HAVE_ZSTD_TRUE=
HAVE_ZSTD_FALSE='#'
else
HAVE_ZSTD_TRUE='#'
HAVE_ZSTD_FALSE=
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --compress-debug-sections=zstd is supported" >&5
$as_echo_n "checking whether --compress-debug-sections=zstd is supported... " >&6; }
if ${libgo_cv_ld_compress_zstd+:} false; then :
$as_echo_n "(cached) " >&6
else
LDFLAGS_hold=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,--compress-debug-sections=zstd"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
libgo_cv_ld_compress_zstd=yes
else
libgo_cv_ld_compress_zstd=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$LDFLAGS_hold
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_ld_compress_zstd" >&5
$as_echo "$libgo_cv_ld_compress_zstd" >&6; }
if test "$libgo_cv_ld_compress_zstd" = yes; then
HAVE_COMPRESSED_DEBUG_ZSTD_TRUE=
HAVE_COMPRESSED_DEBUG_ZSTD_FALSE='#'
else
HAVE_COMPRESSED_DEBUG_ZSTD_TRUE='#'
HAVE_COMPRESSED_DEBUG_ZSTD_FALSE=
fi
# Extract the first word of "objcopy", so it can be a program name with args.
set dummy objcopy; ac_word=$2
@ -13350,10 +13496,22 @@ if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then
as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_BUILDID_TRUE}" && test -z "${HAVE_BUILDID_FALSE}"; then
as_fn_error $? "conditional \"HAVE_BUILDID\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_COMPRESSED_DEBUG_TRUE}" && test -z "${HAVE_COMPRESSED_DEBUG_FALSE}"; then
as_fn_error $? "conditional \"HAVE_COMPRESSED_DEBUG\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_ZSTD_TRUE}" && test -z "${HAVE_ZSTD_FALSE}"; then
as_fn_error $? "conditional \"HAVE_ZSTD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_COMPRESSED_DEBUG_ZSTD_TRUE}" && test -z "${HAVE_COMPRESSED_DEBUG_ZSTD_FALSE}"; then
as_fn_error $? "conditional \"HAVE_COMPRESSED_DEBUG_ZSTD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_OBJCOPY_DEBUGLINK_TRUE}" && test -z "${HAVE_OBJCOPY_DEBUGLINK_FALSE}"; then
as_fn_error $? "conditional \"HAVE_OBJCOPY_DEBUGLINK\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5

@ -404,6 +404,9 @@ if test "$have_getexecname" = "yes"; then
AC_DEFINE(HAVE_GETEXECNAME, 1, [Define if getexecname is available.])
fi
# Check for _pgmptr variable, contains the executable filename on windows
AC_CHECK_DECLS([_pgmptr])
# Check for sysctl definitions.
AC_CACHE_CHECK([for KERN_PROC],
@ -481,7 +484,18 @@ AC_CHECK_LIB([z], [compress],
[AC_DEFINE(HAVE_ZLIB, 1, [Define if -lz is available.])])
AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_lib_z_compress" = yes)
dnl Test whether the linker supports the --compress_debug_sections option.
dnl Test whether the linker supports the --build-id option.
AC_CACHE_CHECK([whether --build-id is supported],
[libbacktrace_cv_ld_buildid],
[LDFLAGS_hold=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,--build-id"
AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
[libbacktrace_cv_ld_buildid=yes],
[libbacktrace_cv_ld_buildid=no])
LDFLAGS=$LDFLAGS_hold])
AM_CONDITIONAL(HAVE_BUILDID, test "$libbacktrace_cv_ld_buildid" = yes)
dnl Test whether the linker supports the --compress-debug-sections option.
AC_CACHE_CHECK([whether --compress-debug-sections is supported],
[libgo_cv_ld_compress],
[LDFLAGS_hold=$LDFLAGS
@ -492,6 +506,21 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
LDFLAGS=$LDFLAGS_hold])
AM_CONDITIONAL(HAVE_COMPRESSED_DEBUG, test "$libgo_cv_ld_compress" = yes)
AC_CHECK_LIB([zstd], [ZSTD_compress],
[AC_DEFINE(HAVE_ZSTD, 1, [Define if -lzstd is available.])])
AM_CONDITIONAL(HAVE_ZSTD, test "$ac_cv_lib_zstd_ZSTD_compress" = yes)
dnl Test whether the linker supports --compress-debug-sections=zstd option.
AC_CACHE_CHECK([whether --compress-debug-sections=zstd is supported],
[libgo_cv_ld_compress_zstd],
[LDFLAGS_hold=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,--compress-debug-sections=zstd"
AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
[libgo_cv_ld_compress_zstd=yes],
[libgo_cv_ld_compress_zstd=no])
LDFLAGS=$LDFLAGS_hold])
AM_CONDITIONAL(HAVE_COMPRESSED_DEBUG_ZSTD, test "$libgo_cv_ld_compress_zstd" = yes)
AC_ARG_VAR(OBJCOPY, [location of objcopy])
AC_CHECK_PROG(OBJCOPY, objcopy, objcopy,)
AC_CHECK_PROG(READELF, readelf, readelf)

@ -470,7 +470,7 @@ enum attr_val_encoding
/* An address. */
ATTR_VAL_ADDRESS,
/* An index into the .debug_addr section, whose value is relative to
* the DW_AT_addr_base attribute of the compilation unit. */
the DW_AT_addr_base attribute of the compilation unit. */
ATTR_VAL_ADDRESS_INDEX,
/* A unsigned integer. */
ATTR_VAL_UINT,
@ -608,8 +608,8 @@ struct function
struct function_addrs
{
/* Range is LOW <= PC < HIGH. */
uint64_t low;
uint64_t high;
uintptr_t low;
uintptr_t high;
/* Function for this address range. */
struct function *function;
};
@ -690,8 +690,8 @@ struct unit
struct unit_addrs
{
/* Range is LOW <= PC < HIGH. */
uint64_t low;
uint64_t high;
uintptr_t low;
uintptr_t high;
/* Compilation unit for this address range. */
struct unit *u;
};
@ -1428,7 +1428,7 @@ resolve_addr_index (const struct dwarf_sections *dwarf_sections,
uint64_t addr_base, int addrsize, int is_bigendian,
uint64_t addr_index,
backtrace_error_callback error_callback, void *data,
uint64_t *address)
uintptr_t *address)
{
uint64_t offset;
struct dwarf_buf addr_buf;
@ -1449,7 +1449,7 @@ resolve_addr_index (const struct dwarf_sections *dwarf_sections,
addr_buf.data = data;
addr_buf.reported_underflow = 0;
*address = read_address (&addr_buf, addrsize);
*address = (uintptr_t) read_address (&addr_buf, addrsize);
return 1;
}
@ -1528,7 +1528,7 @@ function_addrs_search (const void *vkey, const void *ventry)
static int
add_unit_addr (struct backtrace_state *state, void *rdata,
uint64_t lowpc, uint64_t highpc,
uintptr_t lowpc, uintptr_t highpc,
backtrace_error_callback error_callback, void *data,
void *pvec)
{
@ -1864,10 +1864,10 @@ lookup_abbrev (struct abbrevs *abbrevs, uint64_t code,
lowpc/highpc is set or ranges is set. */
struct pcrange {
uint64_t lowpc; /* The low PC value. */
uintptr_t lowpc; /* The low PC value. */
int have_lowpc; /* Whether a low PC value was found. */
int lowpc_is_addr_index; /* Whether lowpc is in .debug_addr. */
uint64_t highpc; /* The high PC value. */
uintptr_t highpc; /* The high PC value. */
int have_highpc; /* Whether a high PC value was found. */
int highpc_is_relative; /* Whether highpc is relative to lowpc. */
int highpc_is_addr_index; /* Whether highpc is in .debug_addr. */
@ -1887,12 +1887,12 @@ update_pcrange (const struct attr* attr, const struct attr_val* val,
case DW_AT_low_pc:
if (val->encoding == ATTR_VAL_ADDRESS)
{
pcrange->lowpc = val->u.uint;
pcrange->lowpc = (uintptr_t) val->u.uint;
pcrange->have_lowpc = 1;
}
else if (val->encoding == ATTR_VAL_ADDRESS_INDEX)
{
pcrange->lowpc = val->u.uint;
pcrange->lowpc = (uintptr_t) val->u.uint;
pcrange->have_lowpc = 1;
pcrange->lowpc_is_addr_index = 1;
}
@ -1901,18 +1901,18 @@ update_pcrange (const struct attr* attr, const struct attr_val* val,
case DW_AT_high_pc:
if (val->encoding == ATTR_VAL_ADDRESS)
{
pcrange->highpc = val->u.uint;
pcrange->highpc = (uintptr_t) val->u.uint;
pcrange->have_highpc = 1;
}
else if (val->encoding == ATTR_VAL_UINT)
{
pcrange->highpc = val->u.uint;
pcrange->highpc = (uintptr_t) val->u.uint;
pcrange->have_highpc = 1;
pcrange->highpc_is_relative = 1;
}
else if (val->encoding == ATTR_VAL_ADDRESS_INDEX)
{
pcrange->highpc = val->u.uint;
pcrange->highpc = (uintptr_t) val->u.uint;
pcrange->have_highpc = 1;
pcrange->highpc_is_addr_index = 1;
}
@ -1947,16 +1947,16 @@ add_low_high_range (struct backtrace_state *state,
uintptr_t base_address, int is_bigendian,
struct unit *u, const struct pcrange *pcrange,
int (*add_range) (struct backtrace_state *state,
void *rdata, uint64_t lowpc,
uint64_t highpc,
void *rdata, uintptr_t lowpc,
uintptr_t highpc,
backtrace_error_callback error_callback,
void *data, void *vec),
void *rdata,
backtrace_error_callback error_callback, void *data,
void *vec)
{
uint64_t lowpc;
uint64_t highpc;
uintptr_t lowpc;
uintptr_t highpc;
lowpc = pcrange->lowpc;
if (pcrange->lowpc_is_addr_index)
@ -1994,10 +1994,10 @@ add_ranges_from_ranges (
struct backtrace_state *state,
const struct dwarf_sections *dwarf_sections,
uintptr_t base_address, int is_bigendian,
struct unit *u, uint64_t base,
struct unit *u, uintptr_t base,
const struct pcrange *pcrange,
int (*add_range) (struct backtrace_state *state, void *rdata,
uint64_t lowpc, uint64_t highpc,
uintptr_t lowpc, uintptr_t highpc,
backtrace_error_callback error_callback, void *data,
void *vec),
void *rdata,
@ -2036,12 +2036,12 @@ add_ranges_from_ranges (
break;
if (is_highest_address (low, u->addrsize))
base = high;
base = (uintptr_t) high;
else
{
if (!add_range (state, rdata,
low + base + base_address,
high + base + base_address,
(uintptr_t) low + base + base_address,
(uintptr_t) high + base + base_address,
error_callback, data, vec))
return 0;
}
@ -2061,10 +2061,10 @@ add_ranges_from_rnglists (
struct backtrace_state *state,
const struct dwarf_sections *dwarf_sections,
uintptr_t base_address, int is_bigendian,
struct unit *u, uint64_t base,
struct unit *u, uintptr_t base,
const struct pcrange *pcrange,
int (*add_range) (struct backtrace_state *state, void *rdata,
uint64_t lowpc, uint64_t highpc,
uintptr_t lowpc, uintptr_t highpc,
backtrace_error_callback error_callback, void *data,
void *vec),
void *rdata,
@ -2130,8 +2130,8 @@ add_ranges_from_rnglists (
case DW_RLE_startx_endx:
{
uint64_t index;
uint64_t low;
uint64_t high;
uintptr_t low;
uintptr_t high;
index = read_uleb128 (&rnglists_buf);
if (!resolve_addr_index (dwarf_sections, u->addr_base,
@ -2153,8 +2153,8 @@ add_ranges_from_rnglists (
case DW_RLE_startx_length:
{
uint64_t index;
uint64_t low;
uint64_t length;
uintptr_t low;
uintptr_t length;
index = read_uleb128 (&rnglists_buf);
if (!resolve_addr_index (dwarf_sections, u->addr_base,
@ -2184,16 +2184,16 @@ add_ranges_from_rnglists (
break;
case DW_RLE_base_address:
base = read_address (&rnglists_buf, u->addrsize);
base = (uintptr_t) read_address (&rnglists_buf, u->addrsize);
break;
case DW_RLE_start_end:
{
uint64_t low;
uint64_t high;
uintptr_t low;
uintptr_t high;
low = read_address (&rnglists_buf, u->addrsize);
high = read_address (&rnglists_buf, u->addrsize);
low = (uintptr_t) read_address (&rnglists_buf, u->addrsize);
high = (uintptr_t) read_address (&rnglists_buf, u->addrsize);
if (!add_range (state, rdata, low + base_address,
high + base_address, error_callback, data,
vec))
@ -2203,11 +2203,11 @@ add_ranges_from_rnglists (
case DW_RLE_start_length:
{
uint64_t low;
uint64_t length;
uintptr_t low;
uintptr_t length;
low = read_address (&rnglists_buf, u->addrsize);
length = read_uleb128 (&rnglists_buf);
low = (uintptr_t) read_address (&rnglists_buf, u->addrsize);
length = (uintptr_t) read_uleb128 (&rnglists_buf);
low += base_address;
if (!add_range (state, rdata, low, low + length,
error_callback, data, vec))
@ -2237,9 +2237,9 @@ static int
add_ranges (struct backtrace_state *state,
const struct dwarf_sections *dwarf_sections,
uintptr_t base_address, int is_bigendian,
struct unit *u, uint64_t base, const struct pcrange *pcrange,
struct unit *u, uintptr_t base, const struct pcrange *pcrange,
int (*add_range) (struct backtrace_state *state, void *rdata,
uint64_t lowpc, uint64_t highpc,
uintptr_t lowpc, uintptr_t highpc,
backtrace_error_callback error_callback,
void *data, void *vec),
void *rdata,
@ -3517,7 +3517,7 @@ read_referenced_name (struct dwarf_data *ddata, struct unit *u,
static int
add_function_range (struct backtrace_state *state, void *rdata,
uint64_t lowpc, uint64_t highpc,
uintptr_t lowpc, uintptr_t highpc,
backtrace_error_callback error_callback, void *data,
void *pvec)
{
@ -3557,7 +3557,7 @@ add_function_range (struct backtrace_state *state, void *rdata,
static int
read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
struct unit *u, uint64_t base, struct dwarf_buf *unit_buf,
struct unit *u, uintptr_t base, struct dwarf_buf *unit_buf,
const struct line_header *lhdr,
backtrace_error_callback error_callback, void *data,
struct function_vector *vec_function,
@ -3621,7 +3621,7 @@ read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
&& abbrev->attrs[i].name == DW_AT_low_pc)
{
if (val.encoding == ATTR_VAL_ADDRESS)
base = val.u.uint;
base = (uintptr_t) val.u.uint;
else if (val.encoding == ATTR_VAL_ADDRESS_INDEX)
{
if (!resolve_addr_index (&ddata->dwarf_sections,

2659
deps/libbacktrace/elf.c vendored

File diff suppressed because it is too large Load Diff

@ -155,6 +155,16 @@ macho_get_executable_path (struct backtrace_state *state,
#endif /* !defined (HAVE_MACH_O_DYLD_H) */
#if HAVE_DECL__PGMPTR
#define windows_executable_filename() _pgmptr
#else /* !HAVE_DECL__PGMPTR */
#define windows_executable_filename() NULL
#endif /* !HAVE_DECL__PGMPTR */
/* Initialize the fileline information from the executable. Returns 1
on success, 0 on failure. */
@ -192,7 +202,7 @@ fileline_initialize (struct backtrace_state *state,
descriptor = -1;
called_error_callback = 0;
for (pass = 0; pass < 8; ++pass)
for (pass = 0; pass < 9; ++pass)
{
int does_not_exist;
@ -205,23 +215,28 @@ fileline_initialize (struct backtrace_state *state,
filename = getexecname ();
break;
case 2:
filename = "/proc/self/exe";
/* Test this before /proc/self/exe, as the latter exists but points
to the wine binary (and thus doesn't work). */
filename = windows_executable_filename ();
break;
case 3:
filename = "/proc/curproc/file";
filename = "/proc/self/exe";
break;
case 4:
filename = "/proc/curproc/file";
break;
case 5:
snprintf (buf, sizeof (buf), "/proc/%ld/object/a.out",
(long) getpid ());
filename = buf;
break;
case 5:
case 6:
filename = sysctl_exec_name1 (state, error_callback, data);
break;
case 6:
case 7:
filename = sysctl_exec_name2 (state, error_callback, data);
break;
case 7:
case 8:
filename = macho_get_executable_path (state, error_callback, data);
break;
default:

@ -368,6 +368,15 @@ extern int backtrace_uncompress_zdebug (struct backtrace_state *,
unsigned char **uncompressed,
size_t *uncompressed_size);
/* A test-only hook for elf_zstd_decompress. */
extern int backtrace_uncompress_zstd (struct backtrace_state *,
const unsigned char *compressed,
size_t compressed_size,
backtrace_error_callback, void *data,
unsigned char *uncompressed,
size_t uncompressed_size);
/* A test-only hook for elf_uncompress_lzma. */
extern int backtrace_uncompress_lzma (struct backtrace_state *,

523
deps/libbacktrace/zstdtest.c vendored Normal file

@ -0,0 +1,523 @@
/* ztest.c -- Test for libbacktrace zstd code.
Copyright (C) 2022 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
(1) Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
(2) Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
(3) The name of the author may not be used to
endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. */
#include "config.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef HAVE_ZSTD
#include <zstd.h>
#endif
#include "backtrace.h"
#include "backtrace-supported.h"
#include "internal.h"
#include "testlib.h"
#ifndef HAVE_CLOCK_GETTIME
typedef int xclockid_t;
static int
xclock_gettime (xclockid_t id ATTRIBUTE_UNUSED,
struct timespec *ts ATTRIBUTE_UNUSED)
{
errno = EINVAL;
return -1;
}
#define clockid_t xclockid_t
#define clock_gettime xclock_gettime
#undef CLOCK_REALTIME
#define CLOCK_REALTIME 0
#endif /* !defined(HAVE_CLOCK_GETTIME) */
#ifdef CLOCK_PROCESS_CPUTIME_ID
#define ZSTD_CLOCK_GETTIME_ARG CLOCK_PROCESS_CPUTIME_ID
#else
#define ZSTD_CLOCK_GETTIME_ARG CLOCK_REALTIME
#endif
/* Some tests for the local zstd inflation code. */
struct zstd_test
{
const char *name;
const char *uncompressed;
size_t uncompressed_len;
const char *compressed;
size_t compressed_len;
};
/* Error callback. */
static void
error_callback_compress (void *vdata ATTRIBUTE_UNUSED, const char *msg,
int errnum)
{
fprintf (stderr, "%s", msg);
if (errnum > 0)
fprintf (stderr, ": %s", strerror (errnum));
fprintf (stderr, "\n");
exit (EXIT_FAILURE);
}
static const struct zstd_test tests[] =
{
{
"empty",
"",
0,
"\x28\xb5\x2f\xfd\x24\x00\x01\x00\x00\x99\xe9\xd8\x51",
13,
},
{
"hello",
"hello, world\n",
0,
("\x28\xb5\x2f\xfd\x24\x0d\x69\x00\x00\x68\x65\x6c\x6c\x6f\x2c\x20"
"\x77\x6f\x72\x6c\x64\x0a\x4c\x1f\xf9\xf1"),
26,
},
{
"goodbye",
"goodbye, world",
0,
("\x28\xb5\x2f\xfd\x24\x0e\x71\x00\x00\x67\x6f\x6f\x64\x62\x79\x65"
"\x2c\x20\x77\x6f\x72\x6c\x64\x61\x7b\x4b\x83"),
27,
},
{
"ranges",
("\xcc\x11\x00\x00\x00\x00\x00\x00\xd5\x13\x00\x00\x00\x00\x00\x00"
"\x1c\x14\x00\x00\x00\x00\x00\x00\x72\x14\x00\x00\x00\x00\x00\x00"
"\x9d\x14\x00\x00\x00\x00\x00\x00\xd5\x14\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xfb\x12\x00\x00\x00\x00\x00\x00\x09\x13\x00\x00\x00\x00\x00\x00"
"\x0c\x13\x00\x00\x00\x00\x00\x00\xcb\x13\x00\x00\x00\x00\x00\x00"
"\x29\x14\x00\x00\x00\x00\x00\x00\x4e\x14\x00\x00\x00\x00\x00\x00"
"\x9d\x14\x00\x00\x00\x00\x00\x00\xd5\x14\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xfb\x12\x00\x00\x00\x00\x00\x00\x09\x13\x00\x00\x00\x00\x00\x00"
"\x67\x13\x00\x00\x00\x00\x00\x00\xcb\x13\x00\x00\x00\x00\x00\x00"
"\x9d\x14\x00\x00\x00\x00\x00\x00\xd5\x14\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x5f\x0b\x00\x00\x00\x00\x00\x00\x6c\x0b\x00\x00\x00\x00\x00\x00"
"\x7d\x0b\x00\x00\x00\x00\x00\x00\x7e\x0c\x00\x00\x00\x00\x00\x00"
"\x38\x0f\x00\x00\x00\x00\x00\x00\x5c\x0f\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x83\x0c\x00\x00\x00\x00\x00\x00\xfa\x0c\x00\x00\x00\x00\x00\x00"
"\xfd\x0d\x00\x00\x00\x00\x00\x00\xef\x0e\x00\x00\x00\x00\x00\x00"
"\x14\x0f\x00\x00\x00\x00\x00\x00\x38\x0f\x00\x00\x00\x00\x00\x00"
"\x9f\x0f\x00\x00\x00\x00\x00\x00\xac\x0f\x00\x00\x00\x00\x00\x00"
"\xdb\x0f\x00\x00\x00\x00\x00\x00\xff\x0f\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xfd\x0d\x00\x00\x00\x00\x00\x00\xd8\x0e\x00\x00\x00\x00\x00\x00"
"\x9f\x0f\x00\x00\x00\x00\x00\x00\xac\x0f\x00\x00\x00\x00\x00\x00"
"\xdb\x0f\x00\x00\x00\x00\x00\x00\xff\x0f\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xfa\x0c\x00\x00\x00\x00\x00\x00\xea\x0d\x00\x00\x00\x00\x00\x00"
"\xef\x0e\x00\x00\x00\x00\x00\x00\x14\x0f\x00\x00\x00\x00\x00\x00"
"\x5c\x0f\x00\x00\x00\x00\x00\x00\x9f\x0f\x00\x00\x00\x00\x00\x00"
"\xac\x0f\x00\x00\x00\x00\x00\x00\xdb\x0f\x00\x00\x00\x00\x00\x00"
"\xff\x0f\x00\x00\x00\x00\x00\x00\x2c\x10\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x60\x11\x00\x00\x00\x00\x00\x00\xd1\x16\x00\x00\x00\x00\x00\x00"
"\x40\x0b\x00\x00\x00\x00\x00\x00\x2c\x10\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x7a\x00\x00\x00\x00\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x00\x00"
"\x9f\x01\x00\x00\x00\x00\x00\x00\xa7\x01\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x7a\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00"
"\x9f\x01\x00\x00\x00\x00\x00\x00\xa7\x01\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"),
672,
("\x28\xb5\x2f\xfd\x64\xa0\x01\x2d\x05\x00\xc4\x04\xcc\x11\x00\xd5"
"\x13\x00\x1c\x14\x00\x72\x9d\xd5\xfb\x12\x00\x09\x0c\x13\xcb\x13"
"\x29\x4e\x67\x5f\x0b\x6c\x0b\x7d\x0b\x7e\x0c\x38\x0f\x5c\x0f\x83"
"\x0c\xfa\x0c\xfd\x0d\xef\x0e\x14\x38\x9f\x0f\xac\x0f\xdb\x0f\xff"
"\x0f\xd8\x9f\xac\xdb\xff\xea\x5c\x2c\x10\x60\xd1\x16\x40\x0b\x7a"
"\x00\xb6\x00\x9f\x01\xa7\x01\xa9\x36\x20\xa0\x83\x14\x34\x63\x4a"
"\x21\x70\x8c\x07\x46\x03\x4e\x10\x62\x3c\x06\x4e\xc8\x8c\xb0\x32"
"\x2a\x59\xad\xb2\xf1\x02\x82\x7c\x33\xcb\x92\x6f\x32\x4f\x9b\xb0"
"\xa2\x30\xf0\xc0\x06\x1e\x98\x99\x2c\x06\x1e\xd8\xc0\x03\x56\xd8"
"\xc0\x03\x0f\x6c\xe0\x01\xf1\xf0\xee\x9a\xc6\xc8\x97\x99\xd1\x6c"
"\xb4\x21\x45\x3b\x10\xe4\x7b\x99\x4d\x8a\x36\x64\x5c\x77\x08\x02"
"\xcb\xe0\xce"),
179,
}
};
/* Test the hand coded samples. */
static void
test_samples (struct backtrace_state *state)
{
size_t i;
for (i = 0; i < sizeof tests / sizeof tests[0]; ++i)
{
unsigned char *uncompressed;
size_t uncompressed_len;
uncompressed_len = tests[i].uncompressed_len;
if (uncompressed_len == 0)
uncompressed_len = strlen (tests[i].uncompressed);
uncompressed = (unsigned char *) malloc (uncompressed_len);
if (uncompressed == NULL)
{
perror ("malloc");
fprintf (stderr, "test %s: uncompress failed\n", tests[i].name);
++failures;
continue;
}
if (!backtrace_uncompress_zstd (state,
((const unsigned char *)
tests[i].compressed),
tests[i].compressed_len,
error_callback_compress, NULL,
uncompressed, uncompressed_len))
{
fprintf (stderr, "test %s: uncompress failed\n", tests[i].name);
++failures;
}
else
{
if (memcmp (tests[i].uncompressed, uncompressed, uncompressed_len)
!= 0)
{
size_t j;
fprintf (stderr, "test %s: uncompressed data mismatch\n",
tests[i].name);
for (j = 0; j < uncompressed_len; ++j)
if (tests[i].uncompressed[j] != uncompressed[j])
fprintf (stderr, " %zu: got %#x want %#x\n", j,
uncompressed[j], tests[i].uncompressed[j]);
++failures;
}
else
printf ("PASS: uncompress %s\n", tests[i].name);
}
free (uncompressed);
}
}
#ifdef HAVE_ZSTD
/* Given a set of TRIALS timings, discard the lowest and highest
values and return the mean average of the rest. */
static size_t
average_time (const size_t *times, size_t trials)
{
size_t imax;
size_t max;
size_t imin;
size_t min;
size_t i;
size_t sum;
imin = 0;
imax = 0;
min = times[0];
max = times[0];
for (i = 1; i < trials; ++i)
{
if (times[i] < min)
{
imin = i;
min = times[i];
}
if (times[i] > max)
{
imax = i;
max = times[i];
}
}
sum = 0;
for (i = 0; i < trials; ++i)
{
if (i != imax && i != imin)
sum += times[i];
}
return sum / (trials - 2);
}
#endif
/* Test a larger text, if available. */
static void
test_large (struct backtrace_state *state ATTRIBUTE_UNUSED)
{
#ifdef HAVE_ZSTD
unsigned char *orig_buf;
size_t orig_bufsize;
size_t i;
char *compressed_buf;
size_t compressed_bufsize;
size_t compressed_size;
unsigned char *uncompressed_buf;
size_t r;
clockid_t cid;
struct timespec ts1;
struct timespec ts2;
size_t ctime;
size_t ztime;
const size_t trials = 16;
size_t ctimes[16];
size_t ztimes[16];
static const char * const names[] = {
"Isaac.Newton-Opticks.txt",
"../libgo/go/testdata/Isaac.Newton-Opticks.txt",
};
orig_buf = NULL;
orig_bufsize = 0;
uncompressed_buf = NULL;
compressed_buf = NULL;
for (i = 0; i < sizeof names / sizeof names[0]; ++i)
{
size_t len;
char *namebuf;
FILE *e;
struct stat st;
char *rbuf;
size_t got;
len = strlen (SRCDIR) + strlen (names[i]) + 2;
namebuf = malloc (len);
if (namebuf == NULL)
{
perror ("malloc");
goto fail;
}
snprintf (namebuf, len, "%s/%s", SRCDIR, names[i]);
e = fopen (namebuf, "r");
free (namebuf);
if (e == NULL)
continue;
if (fstat (fileno (e), &st) < 0)
{
perror ("fstat");
fclose (e);
continue;
}
rbuf = malloc (st.st_size);
if (rbuf == NULL)
{
perror ("malloc");
goto fail;
}
got = fread (rbuf, 1, st.st_size, e);
fclose (e);
if (got > 0)
{
orig_buf = (unsigned char *) rbuf;
orig_bufsize = got;
break;
}
free (rbuf);
}
if (orig_buf == NULL)
{
/* We couldn't find an input file. */
printf ("UNSUPPORTED: zstd large\n");
return;
}
compressed_bufsize = ZSTD_compressBound (orig_bufsize);
compressed_buf = malloc (compressed_bufsize);
if (compressed_buf == NULL)
{
perror ("malloc");
goto fail;
}
r = ZSTD_compress (compressed_buf, compressed_bufsize,
orig_buf, orig_bufsize,
ZSTD_CLEVEL_DEFAULT);
if (ZSTD_isError (r))
{
fprintf (stderr, "zstd compress failed: %s\n", ZSTD_getErrorName (r));
goto fail;
}
compressed_size = r;
uncompressed_buf = malloc (orig_bufsize);
if (uncompressed_buf == NULL)
{
perror ("malloc");
goto fail;
}
if (!backtrace_uncompress_zstd (state, (unsigned char *) compressed_buf,
compressed_size,
error_callback_compress, NULL,
uncompressed_buf, orig_bufsize))
{
fprintf (stderr, "zstd large: backtrace_uncompress_zstd failed\n");
goto fail;
}
if (memcmp (uncompressed_buf, orig_buf, orig_bufsize) != 0)
{
size_t j;
fprintf (stderr, "zstd large: uncompressed data mismatch\n");
for (j = 0; j < orig_bufsize; ++j)
if (orig_buf[j] != uncompressed_buf[j])
fprintf (stderr, " %zu: got %#x want %#x\n", j,
uncompressed_buf[j], orig_buf[j]);
goto fail;
}
printf ("PASS: zstd large\n");
for (i = 0; i < trials; ++i)
{
cid = ZSTD_CLOCK_GETTIME_ARG;
if (clock_gettime (cid, &ts1) < 0)
{
if (errno == EINVAL)
return;
perror ("clock_gettime");
return;
}
if (!backtrace_uncompress_zstd (state,
(unsigned char *) compressed_buf,
compressed_size,
error_callback_compress, NULL,
uncompressed_buf,
orig_bufsize))
{
fprintf (stderr,
("zstd large: "
"benchmark backtrace_uncompress_zstd failed\n"));
return;
}
if (clock_gettime (cid, &ts2) < 0)
{
perror ("clock_gettime");
return;
}
ctime = (ts2.tv_sec - ts1.tv_sec) * 1000000000;
ctime += ts2.tv_nsec - ts1.tv_nsec;
ctimes[i] = ctime;
if (clock_gettime (cid, &ts1) < 0)
{
perror("clock_gettime");
return;
}
r = ZSTD_decompress (uncompressed_buf, orig_bufsize,
compressed_buf, compressed_size);
if (clock_gettime (cid, &ts2) < 0)
{
perror ("clock_gettime");
return;
}
if (ZSTD_isError (r))
{
fprintf (stderr,
"zstd large: benchmark zlib uncompress failed: %s\n",
ZSTD_getErrorName (r));
return;
}
ztime = (ts2.tv_sec - ts1.tv_sec) * 1000000000;
ztime += ts2.tv_nsec - ts1.tv_nsec;
ztimes[i] = ztime;
}
/* Toss the highest and lowest times and average the rest. */
ctime = average_time (ctimes, trials);
ztime = average_time (ztimes, trials);
printf ("backtrace: %zu ns\n", ctime);
printf ("zstd : %zu ns\n", ztime);
printf ("ratio : %g\n", (double) ztime / (double) ctime);
return;
fail:
printf ("FAIL: zstd large\n");
++failures;
if (orig_buf != NULL)
free (orig_buf);
if (compressed_buf != NULL)
free (compressed_buf);
if (uncompressed_buf != NULL)
free (uncompressed_buf);
#else /* !HAVE_ZSTD */
printf ("UNSUPPORTED: zstd large\n");
#endif /* !HAVE_ZSTD */
}
int
main (int argc ATTRIBUTE_UNUSED, char **argv)
{
struct backtrace_state *state;
state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
error_callback_create, NULL);
test_samples (state);
test_large (state);
exit (failures != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}

@ -42,7 +42,7 @@ jobs:
- name: Install dependencies
run: |
curl -sL -o - https://ziglang.org/download/0.10.1/zig-linux-x86_64-0.10.1.tar.xz | tar xJ -f - -C /opt/
curl -sL -o - https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz | tar xJ -f - -C /opt/
sudo mv /opt/zig-* /opt/zig
- name: Autogen
@ -59,7 +59,7 @@ jobs:
zig build -Dtarget=x86_64-macos
zig build -Dtarget=aarch64-macos
zig build -Dtarget=wasm32-wasi
zig build -Drelease-fast
zig build -Doptimize=ReleaseFast
rm -fr zig-cache zig-out
regular:
@ -172,7 +172,7 @@ jobs:
- name: Install Android NDK
run: |
mkdir /tmp/android && cd /tmp/android
curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r25c-linux.zip
unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk
- name: Android compilation

@ -28,13 +28,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Zig
uses: goto-bus-stop/setup-zig@869a4299cf8ac7db4ebffaec36ad82a682f88acb
uses: goto-bus-stop/setup-zig@6fede2f0550d71291c0accf2834b216e69a2d67a
with:
version: 0.10.1
version: 0.11.0
- uses: actions/checkout@v3
- name: build
run: |
zig build -Drelease-fast -Dtarget=x86_64-linux-gnu.2.17
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu.2.17 -Dcpu=sandybridge
- name: tests
run: cd zig-out/bin && ./run.sh
- uses: actions/upload-artifact@v3
@ -46,12 +46,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Zig
uses: goto-bus-stop/setup-zig@869a4299cf8ac7db4ebffaec36ad82a682f88acb
uses: goto-bus-stop/setup-zig@6fede2f0550d71291c0accf2834b216e69a2d67a
with:
version: 0.10.1
- name: Fix ARM support
run: |
curl -L https://raw.githubusercontent.com/ziglang/zig/master/lib/libc/glibc/sysdeps/arm/arm-features.h | sudo tee /opt/hostedtoolcache/zig/zig-linux-x86_64-*/x64/lib/libc/glibc/sysdeps/arm/sysdep.h >/dev/null
version: 0.11.0
- name: Set up emulation environment
run: |
export DEBIAN_FRONTEND=noninteractive
@ -64,7 +61,7 @@ jobs:
- uses: actions/checkout@v3
- name: build
run: |
zig build -Drelease-fast -Dtarget=arm-linux-gnueabihf.2.23
zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-gnueabihf.2.23 -Dcpu=baseline
- name: tests
run: |
cd zig-out/bin && env LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib ./run.sh
@ -77,9 +74,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Zig
uses: goto-bus-stop/setup-zig@869a4299cf8ac7db4ebffaec36ad82a682f88acb
uses: goto-bus-stop/setup-zig@6fede2f0550d71291c0accf2834b216e69a2d67a
with:
version: 0.10.1
version: 0.11.0
- name: Set up emulation environment
run: |
export DEBIAN_FRONTEND=noninteractive
@ -92,7 +89,7 @@ jobs:
- uses: actions/checkout@v3
- name: build
run: |
zig build -Drelease-fast -Dtarget=aarch64-linux-gnu.2.23
zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-gnu.2.23 -Dcpu=baseline
- name: tests
run: |
cd zig-out/bin && env LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib ./run.sh
@ -111,13 +108,13 @@ jobs:
apk update
apk add alpine-sdk ca-certificates xz
- name: Install Zig
uses: goto-bus-stop/setup-zig@869a4299cf8ac7db4ebffaec36ad82a682f88acb
uses: goto-bus-stop/setup-zig@6fede2f0550d71291c0accf2834b216e69a2d67a
with:
version: 0.10.1
version: 0.11.0
- uses: actions/checkout@v3
- name: build
run: |
zig build -Drelease-fast -Dtarget=x86_64-linux-musl
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-musl -Dcpu=sandybridge
- name: tests
run: |
cd zig-out/bin && ./run.sh
@ -130,13 +127,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Zig
uses: goto-bus-stop/setup-zig@869a4299cf8ac7db4ebffaec36ad82a682f88acb
uses: goto-bus-stop/setup-zig@6fede2f0550d71291c0accf2834b216e69a2d67a
with:
version: 0.10.1
version: 0.11.0
- uses: actions/checkout@v3
- name: build
run: |
zig build -Drelease-fast -Dtarget=arm-linux-musleabihf
zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-musleabihf -Dcpu=baseline
- uses: actions/upload-artifact@v3
with:
name: build-linux-musl-arm
@ -146,13 +143,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Zig
uses: goto-bus-stop/setup-zig@869a4299cf8ac7db4ebffaec36ad82a682f88acb
uses: goto-bus-stop/setup-zig@6fede2f0550d71291c0accf2834b216e69a2d67a
with:
version: 0.10.1
version: 0.11.0
- uses: actions/checkout@v3
- name: build
run: |
zig build -Drelease-fast -Dtarget=aarch64-linux-musl
zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl -Dcpu=baseline
- uses: actions/upload-artifact@v3
with:
name: build-linux-musl-arm64

@ -80,6 +80,8 @@ test-driver
test/default/*.asm.js
test/default/*.res
test/default/*.trs
test/default/aead_aegis128l
test/default/aead_aegis256
test/default/aead_aes256gcm
test/default/aead_aes256gcm2
test/default/aead_chacha20poly1305
@ -117,6 +119,7 @@ test/default/generichash3
test/default/hash
test/default/hash3
test/default/kdf
test/default/kdf_hkdf
test/default/keygen
test/default/kx
test/default/metamorphic
@ -143,7 +146,7 @@ test/default/secretbox7
test/default/secretbox8
test/default/secretbox_easy
test/default/secretbox_easy2
test/default/secretstream
test/default/secretstream_xchacha20poly1305
test/default/shorthash
test/default/sign
test/default/siphashx24

18
deps/libsodium/CITATION.cff vendored Normal file

@ -0,0 +1,18 @@
cff-version: 1.2.0
title: libsodium
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Frank
family-names: Denis
orcid: 'https://orcid.org/0009-0008-4417-1713'
repository-code: 'https://github.com/jedisct1/libsodium'
url: 'https://libsodium.org'
abstract: 'A modern, portable, easy-to-use cryptographic library.'
keywords:
- cryptography
- library
- nacl
license: ISC

@ -1,3 +1,60 @@
* Version 1.0.19
This release includes all the changes from 1.0.18-stable, as well as two
additions:
- New AEADs: AEGIS-128L and AEGIS-256 are now available in the
`crypto_aead_aegis128l_*()` and `crypto_aead_aegis256_*()` namespaces.
AEGIS is a family of authenticated ciphers for high-performance applications,
leveraging hardware AES acceleration on `x86_64` and `aarch64`. In addition
to performance, AEGIS ciphers have unique properties making them easier and
safer to use than AES-GCM. They can also be used as high-performance MACs.
- The HKDF key derivation mechanism, required by many standard protocols, is
now available in the `crypto_kdf_hkdf_*()` namespace. It is implemented for
the SHA-256 and SHA-512 hash functions.
- The `osx.sh` build script was renamed to `macos.sh`.
- Support for android-mips was removed.
* Version 1.0.18-stable
- Visual Studio: support for Windows/ARM64 builds has been added.
- Visual Studio: AVX512 implementations are enabled on supported CPUs.
- Visual Studio: an MSVC 2022 solution was added.
- Apple XCFramework: support for VisionOS was added.
- Apple XCFranework: support for Catalyst was added.
- Apple XCFramework: building the simulators is now optional.
- iOS: bitcode is not generated any more, as it was deprecated by Apple.
- watchOS: support for arm64 was added.
- The Zig toolchain can now be used as a modern build system to replace
autoconf/automake/libtool/make/ccache and the compiler. This enables faster
compilation times, easier cross compilation, and static libraries optimized
for any CPU.
- The Zig toolchain is now the recommended way to compile `libsodium`
to WebAssembly/WASI(X).
- libsodium can now be added as a dependency to Zig projects.
- Memory fences were added to remove some gadgets that could be used
alongside speculative loads.
- The AES-GCM implementation was completely rewritten. It is now faster,
and also available on aarch64, including Windows/ARM64.
- Compatibility with CET instrumentation / IBT / Shadow Stack was added.
- Emscripten: the `crypto_pwhash_*()` functions have been removed from Sumo
builds, as they reserve a substantial amount of JavaScript memory, even when
not used.
- Benchmarks now use `CLOCK_MONOTONIC` if possible.
- WebAssembly: tests can now run using Bun, WasmEdge, Wazero, wasm3 and
wasmer-js. Support for WAVM and Lucet have been removed, as these projects
have reached EOL.
- .NET: the minimum supported macOS version is now 1.0.15; this matches
Microsoft guidelines.
- .NET: all the packages are now built using Zig, on all platforms. This
allows us to easily match Microsoft's requirements, including supported glibc
versions. However, on x86_64, targets are expected to support at least the
AVX instruction set.
- .NET: packages for ARM64 are now available.
- C23 `memset_explicit()` is now used, when available.
- Compilation now uses `-Ofast` or `-O3` instead of `-O2` by default.
- Portability improvements to help compile libsodium to modern game consoles.
- JavaScript: a default `unhandledRejection` handler is not set any more.
- Slightly faster 25519 operations.
- OpenBSD: leverage `MAP_CONCEAL`.
* Version 1.0.18
- Enterprise versions of Visual Studio are now supported.
@ -29,6 +86,12 @@ to be `NULL`.
- The `-ftree-vectorize` and `-ftree-slp-vectorize` compiler switches are
now used, if available, for optimized builds.
* Version 1.0.17-stable
- AVX512 detection has been improved.
- A compilation option was added to enable retpoline support.
- `-ftls-model=global-dynamic` is now set, if available.
- Portability and documentation improvements.
* Version 1.0.17
- Bug fix: `sodium_pad()` didn't properly support block sizes >= 256 bytes.
- JS/WebAssembly: some old iOS versions can't instantiate the WebAssembly

@ -2,9 +2,6 @@ ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
autogen.sh \
libsodium.sln \
libsodium.vcxproj \
libsodium.vcxproj.filters \
LICENSE \
README.markdown \
THANKS
@ -13,7 +10,6 @@ SUBDIRS = \
builds \
contrib \
dist-build \
msvc-scripts \
src \
test

@ -267,6 +267,7 @@ CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAGS_AESNI = @CFLAGS_AESNI@
CFLAGS_ARMCRYPTO = @CFLAGS_ARMCRYPTO@
CFLAGS_AVX = @CFLAGS_AVX@
CFLAGS_AVX2 = @CFLAGS_AVX2@
CFLAGS_AVX512F = @CFLAGS_AVX512F@
@ -422,9 +423,6 @@ valgrind_tools = @valgrind_tools@
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
autogen.sh \
libsodium.sln \
libsodium.vcxproj \
libsodium.vcxproj.filters \
LICENSE \
README.markdown \
THANKS
@ -433,7 +431,6 @@ SUBDIRS = \
builds \
contrib \
dist-build \
msvc-scripts \
src \
test

@ -1,4 +1,4 @@
version: 1.0.18.{build}
version: 1.0.19.{build}
os: Visual Studio 2017
@ -20,5 +20,5 @@ init: msbuild /version
build:
parallel: true
project: libsodium.vcxproj
verbosity: minimal
project: ci/appveyor/libsodium.vcxproj
verbosity: normal

@ -5,31 +5,6 @@ trigger:
pr: none
jobs:
- job: "wasi"
pool:
vmImage: "ubuntu-20.04"
steps:
- script: |
sudo apt-get install build-essential curl cmake lld
displayName: Install system packages
- script: |
curl https://get.wasmer.io -sSfL | sh
displayName: Install wasmer
- script: |
curl -sL -o - https://ziglang.org/download/0.10.1/zig-linux-x86_64-0.10.1.tar.xz | tar xJ -f - -C /opt/
sudo mv /opt/zig-* /opt/zig
export PATH=/opt/zig/bin:/opt/zig:$PATH
displayName: Install the Zig SDK
- script: |
. ~/.wasmer/wasmer.sh
dist-build/wasm32-wasi.sh
displayName: Compile libsodium
- task: PublishBuildArtifacts@1
condition: not(canceled())
inputs:
pathToPublish: libsodium-wasm32-wasi
artifactName: libsodium-wasm32-wasi
- job: "windows"
pool:
vmImage: "windows-2022"
@ -73,7 +48,7 @@ jobs:
vmImage: "windows-2019"
steps:
- powershell: |
(New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2022-12-16/msys2-base-x86_64-20221216.sfx.exe", "sfx.exe")
(New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2023-07-18/msys2-base-x86_64-20230718.sfx.exe", "sfx.exe")
.\sfx.exe -y -o\
del sfx.exe
displayName: Install MSYS2
@ -112,7 +87,7 @@ jobs:
vmImage: "windows-2019"
steps:
- powershell: |
(New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-base-x86_64-20210725.sfx.exe", "sfx.exe")
(New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2023-07-18/msys2-base-x86_64-20230718.sfx.exe", "sfx.exe")
.\sfx.exe -y -o\
del sfx.exe
displayName: Install MSYS2

File diff suppressed because it is too large Load Diff

@ -4,7 +4,7 @@
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2023-01-21'
timestamp='2023-07-31'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -82,7 +82,7 @@ This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@ -130,7 +130,7 @@ IFS=$saved_IFS
# Separate into logical components for further validation
case $1 in
*-*-*-*-*)
echo Invalid configuration \`"$1"\': more than four components >&2
echo "Invalid configuration '$1': more than four components" >&2
exit 1
;;
*-*-*-*)
@ -145,7 +145,8 @@ case $1 in
nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
| windows-* )
basic_machine=$field1
basic_os=$maybe_os
;;
@ -943,7 +944,7 @@ $basic_machine
EOF
IFS=$saved_IFS
;;
# We use `pc' rather than `unknown'
# We use 'pc' rather than 'unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
@ -1180,7 +1181,7 @@ case $cpu-$vendor in
case $cpu in
1750a | 580 \
| a29k \
| aarch64 | aarch64_be \
| aarch64 | aarch64c | aarch64_be \
| abacus \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
@ -1205,6 +1206,7 @@ case $cpu-$vendor in
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
| kvx \
| le32 | le64 \
| lm32 \
| loongarch32 | loongarch64 \
@ -1213,31 +1215,7 @@ case $cpu-$vendor in
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64eb | mips64el \
| mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
| mips64r5900 | mips64r5900el \
| mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa32r3 | mipsisa32r3el \
| mipsisa32r5 | mipsisa32r5el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64r3 | mipsisa64r3el \
| mipsisa64r5 | mipsisa64r5el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mips* \
| mmix \
| mn10200 | mn10300 \
| moxie \
@ -1285,7 +1263,7 @@ case $cpu-$vendor in
;;
*)
echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
exit 1
;;
esac
@ -1732,7 +1710,7 @@ case $os in
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
| hiux* | abug | nacl* | netware* | windows* \
| os9* | macos* | osx* | ios* \
| os9* | macos* | osx* | ios* | tvos* | watchos* \
| mpw* | magic* | mmixware* | mon960* | lnews* \
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
| aos* | aros* | cloudabi* | sortix* | twizzler* \
@ -1758,7 +1736,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* | mlibc* )
| fiwix* | mlibc* | cos* | mbr* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@ -1766,11 +1744,11 @@ case $os in
;;
none)
;;
kernel* )
kernel* | msvc* )
# Restricted further below
;;
*)
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
exit 1
;;
esac
@ -1785,18 +1763,24 @@ case $kernel-$os in
;;
managarm-mlibc* | managarm-kernel* )
;;
windows*-gnu* | windows*-msvc*)
;;
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
exit 1
;;
-kernel* )
echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
exit 1
;;
*-kernel* )
echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
exit 1
;;
*-msvc* )
echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
exit 1
;;
kfreebsd*-gnu* | kopensolaris*-gnu*)
@ -1809,11 +1793,15 @@ case $kernel-$os in
;;
*-eabi* | *-gnueabi*)
;;
none-coff* | none-elf*)
# None (no kernel, i.e. freestanding / bare metal),
# can be paired with an output format "OS"
;;
-*)
# Blank kernel with real OS is always fine.
;;
*-*)
echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
exit 1
;;
esac

@ -7,49 +7,95 @@ const LibExeObjStep = std.build.LibExeObjStep;
const Target = std.Target;
pub fn build(b: *std.build.Builder) !void {
const src_path = "src/libsodium";
const src_dir = try fs.Dir.openIterableDir(fs.cwd(), src_path, .{ .no_follow = true });
const root_path = b.pathFromRoot(".");
var cwd = try fs.openDirAbsolute(root_path, .{});
defer cwd.close();
const target = b.standardTargetOptions(.{});
const mode = b.standardReleaseOptions();
const src_path = "src/libsodium";
const src_dir = try fs.Dir.openIterableDir(cwd, src_path, .{ .no_follow = true });
var target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const enable_benchmarks = b.option(bool, "enable_benchmarks", "Whether tests should be benchmarks.") orelse false;
const benchmarks_iterations = b.option(u32, "iterations", "Number of iterations for benchmarks.") orelse 200;
var build_static = b.option(bool, "static", "Build libsodium as a static library.") orelse true;
const build_shared = b.option(bool, "shared", "Build libsodium as a shared library.") orelse true;
const shared = b.addSharedLibrary(
if (target.isWindows()) "sodium_shared" else "sodium",
null,
.unversioned,
);
const static = b.addStaticLibrary("sodium", null);
shared.strip = true;
static.strip = true;
const build_tests = b.option(bool, "test", "Build the tests (implies -Dstatic=true)") orelse true;
const libs_ = [_]*LibExeObjStep{ shared, static };
const libs = if (target.getOsTag() == .wasi) libs_[1..] else libs_[0..];
if (build_tests) {
build_static = true;
}
switch (target.getCpuArch()) {
// Features we assume are always available because they won't affect
// code generation in files that don't use them.
.x86_64 => {
target.cpu_features_add.addFeature(@intFromEnum(Target.x86.Feature.aes));
target.cpu_features_add.addFeature(@intFromEnum(Target.x86.Feature.pclmul));
target.cpu_features_add.addFeature(@intFromEnum(Target.x86.Feature.rdrnd));
},
.aarch64, .aarch64_be => {
target.cpu_features_add.addFeature(@intFromEnum(Target.aarch64.Feature.crypto));
// ARM CPUs supported by Windows also support NEON.
if (target.isWindows()) {
target.cpu_features_add.addFeature(@intFromEnum(Target.aarch64.Feature.neon));
}
},
else => {},
}
const static_lib = b.addStaticLibrary(.{
.name = "sodium",
.target = target,
.optimize = optimize,
});
const shared_lib = b.addSharedLibrary(.{
.name = if (target.isWindows()) "sodium_shared" else "sodium",
.target = target,
.optimize = optimize,
});
// work out which libraries we are building
var libs = std.ArrayList(*LibExeObjStep).init(b.allocator);
defer libs.deinit();
if (build_static) {
try libs.append(static_lib);
}
if (build_shared) {
try libs.append(shared_lib);
}
const prebuilt_version_file_path = "builds/msvc/version.h";
const version_file_path = "include/sodium/version.h";
if (src_dir.dir.access(version_file_path, .{ .mode = .read_only })) {} else |_| {
try fs.cwd().copyFile(prebuilt_version_file_path, src_dir.dir, version_file_path, .{});
try cwd.copyFile(prebuilt_version_file_path, src_dir.dir, version_file_path, .{});
}
for (libs) |lib| {
lib.setTarget(target);
lib.setBuildMode(mode);
lib.install();
if (mode != .Debug) {
for (libs.items) |lib| {
if (lib.isDynamicLibrary() and
!(target.isDarwin() or target.isDragonFlyBSD() or target.isFreeBSD() or
target.isLinux() or target.isNetBSD() or target.isOpenBSD() or target.isWindows()))
{
continue;
}
if (optimize != .Debug and !target.isWindows() and !lib.isStaticLibrary()) {
lib.strip = true;
}
b.installArtifact(lib);
lib.installHeader(src_path ++ "/include/sodium.h", "sodium.h");
lib.installHeadersDirectory(src_path ++ "/include/sodium", "sodium");
lib.linkLibC();
lib.addIncludePath("src/libsodium/include/sodium");
lib.addIncludePath(.{ .path = "src/libsodium/include/sodium" });
lib.defineCMacro("_GNU_SOURCE", "1");
lib.defineCMacro("CONFIGURED", "1");
lib.defineCMacro("DEV_MODE", "1");
lib.defineCMacro("HAVE_ATOMIC_OPS", "1");
lib.defineCMacro("HAVE_C11_MEMORY_FENCES", "1");
lib.defineCMacro("HAVE_CET_H", "1");
lib.defineCMacro("HAVE_GCC_MEMORY_FENCES", "1");
lib.defineCMacro("HAVE_INLINE_ASM", "1");
lib.defineCMacro("HAVE_INTTYPES_H", "1");
@ -92,6 +138,9 @@ pub fn build(b: *std.build.Builder) !void {
.windows => {
lib.defineCMacro("HAVE_RAISE", "1");
lib.defineCMacro("HAVE_SYS_PARAM_H", "1");
if (lib.isStaticLibrary()) {
lib.defineCMacro("SODIUM_STATIC", "1");
}
},
.macos => {
lib.defineCMacro("ASM_HIDE_SYMBOL", ".private_extern");
@ -141,15 +190,31 @@ pub fn build(b: *std.build.Builder) !void {
lib.defineCMacro("HAVE_CPUID", "1");
lib.defineCMacro("HAVE_MMINTRIN_H", "1");
lib.defineCMacro("HAVE_EMMINTRIN_H", "1");
lib.defineCMacro("HAVE_PMMINTRIN_H", "1");
lib.defineCMacro("HAVE_SMMINTRIN_H", "1");
lib.defineCMacro("HAVE_TMMINTRIN_H", "1");
lib.defineCMacro("HAVE_WMMINTRIN_H", "1");
const cpu_features = target.getCpuFeatures();
const has_sse3 = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.sse3));
const has_ssse3 = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.ssse3));
const has_sse4_1 = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.sse4_1));
const has_avx = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.avx));
const has_avx2 = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.avx2));
const has_avx512f = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.avx512f));
const has_aes = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.aes));
const has_pclmul = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.pclmul));
const has_rdrnd = cpu_features.isEnabled(@intFromEnum(Target.x86.Feature.rdrnd));
if (has_sse3) lib.defineCMacro("HAVE_PMMINTRIN_H", "1");
if (has_ssse3) lib.defineCMacro("HAVE_TMMINTRIN_H", "1");
if (has_sse4_1) lib.defineCMacro("HAVE_SMMINTRIN_H", "1");
if (has_avx) lib.defineCMacro("HAVE_AVXINTRIN_H", "1");
if (has_avx2) lib.defineCMacro("HAVE_AVX2INTRIN_H", "1");
if (has_avx512f) lib.defineCMacro("HAVE_AVX512FINTRIN_H", "1");
if (has_aes and has_pclmul) lib.defineCMacro("HAVE_WMMINTRIN_H", "1");
if (has_rdrnd) lib.defineCMacro("HAVE_RDRAND", "1");
},
.aarch64, .aarch64_be => {
const cpu_features = target.getCpuFeatures();
const has_neon = cpu_features.isEnabled(@enumToInt(Target.aarch64.Feature.neon));
const has_crypto = cpu_features.isEnabled(@enumToInt(Target.aarch64.Feature.crypto));
const has_neon = cpu_features.isEnabled(@intFromEnum(Target.aarch64.Feature.neon));
const has_crypto = cpu_features.isEnabled(@intFromEnum(Target.aarch64.Feature.crypto));
if (has_neon and has_crypto) {
lib.defineCMacro("HAVE_ARMCRYPTO", "1");
}
@ -169,9 +234,9 @@ pub fn build(b: *std.build.Builder) !void {
switch (target.getCpuArch()) {
.x86_64 => {
lib.target.cpu_features_add.addFeature(@enumToInt(Target.x86.Feature.sse4_1));
lib.target.cpu_features_add.addFeature(@enumToInt(Target.x86.Feature.aes));
lib.target.cpu_features_add.addFeature(@enumToInt(Target.x86.Feature.pclmul));
lib.target.cpu_features_add.addFeature(@intFromEnum(Target.x86.Feature.sse4_1));
lib.target.cpu_features_add.addFeature(@intFromEnum(Target.x86.Feature.aes));
lib.target.cpu_features_add.addFeature(@intFromEnum(Target.x86.Feature.pclmul));
},
else => {},
}
@ -191,47 +256,50 @@ pub fn build(b: *std.build.Builder) !void {
});
} else if (mem.endsWith(u8, name, ".S")) {
const full_path = try fmt.allocPrint(allocator, "{s}/{s}", .{ src_path, entry.path });
lib.addAssemblyFile(full_path);
lib.addAssemblyFile(.{ .path = full_path });
}
}
}
const test_path = "test/default";
const out_bin_path = "zig-out/bin";
const test_dir = try fs.Dir.openIterableDir(fs.cwd(), test_path, .{ .no_follow = true });
fs.Dir.makePath(fs.cwd(), out_bin_path) catch {};
const out_bin_dir = try fs.Dir.openDir(fs.cwd(), out_bin_path, .{});
const test_dir = try fs.Dir.openIterableDir(cwd, test_path, .{ .no_follow = true });
fs.Dir.makePath(cwd, out_bin_path) catch {};
const out_bin_dir = try fs.Dir.openDir(cwd, out_bin_path, .{});
try test_dir.dir.copyFile("run.sh", out_bin_dir, "run.sh", .{});
var allocator = heap.page_allocator;
var walker = try test_dir.walk(allocator);
while (try walker.next()) |entry| {
const name = entry.basename;
if (mem.endsWith(u8, name, ".exp")) {
try test_dir.dir.copyFile(name, out_bin_dir, name, .{});
continue;
}
if (!mem.endsWith(u8, name, ".c")) {
continue;
}
const exe_name = name[0 .. name.len - 2];
var exe = b.addExecutable(exe_name, null);
exe.setTarget(target);
exe.setBuildMode(mode);
exe.linkLibC();
exe.want_lto = false;
exe.strip = true;
exe.linkLibrary(static);
exe.addIncludePath("src/libsodium/include");
exe.addIncludePath("test/quirks");
const full_path = try fmt.allocPrint(allocator, "{s}/{s}", .{ test_path, entry.path });
exe.addCSourceFiles(&.{full_path}, &.{});
if (build_tests) {
while (try walker.next()) |entry| {
const name = entry.basename;
if (mem.endsWith(u8, name, ".exp")) {
try test_dir.dir.copyFile(name, out_bin_dir, name, .{});
continue;
}
if (!mem.endsWith(u8, name, ".c")) {
continue;
}
const exe_name = name[0 .. name.len - 2];
var exe = b.addExecutable(.{
.name = exe_name,
.target = target,
.optimize = optimize,
});
exe.linkLibC();
exe.strip = true;
exe.linkLibrary(static_lib);
exe.addIncludePath(.{ .path = "src/libsodium/include" });
exe.addIncludePath(.{ .path = "test/quirks" });
const full_path = try fmt.allocPrint(allocator, "{s}/{s}", .{ test_path, entry.path });
exe.addCSourceFiles(&.{full_path}, &.{});
if (enable_benchmarks) {
exe.defineCMacro("BENCHMARKS", "1");
var buf: [16]u8 = undefined;
exe.defineCMacro("ITERATIONS", std.fmt.bufPrintIntToSlice(&buf, benchmarks_iterations, 10, .lower, .{}));
}
if (enable_benchmarks) {
exe.defineCMacro("BENCHMARKS", "1");
var buf: [16]u8 = undefined;
exe.defineCMacro("ITERATIONS", std.fmt.bufPrintIntToSlice(&buf, benchmarks_iterations, 10, .lower, .{}));
}
exe.install();
b.installArtifact(exe);
}
}
}

@ -69,4 +69,11 @@ EXTRA_DIST = \
msvc/vs2019/libsodium/libsodium.xml \
msvc/vs2019/libsodium.import.props \
msvc/vs2019/libsodium.import.xml \
msvc/vs2019/libsodium.sln
msvc/vs2022/libsodium.sln \
msvc/vs2022/libsodium/libsodium.props \
msvc/vs2022/libsodium/libsodium.vcxproj \
msvc/vs2022/libsodium/libsodium.vcxproj.filters \
msvc/vs2022/libsodium/libsodium.xml \
msvc/vs2022/libsodium.import.props \
msvc/vs2022/libsodium.import.xml \
msvc/vs2022/libsodium.sln

@ -146,6 +146,7 @@ CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAGS_AESNI = @CFLAGS_AESNI@
CFLAGS_ARMCRYPTO = @CFLAGS_ARMCRYPTO@
CFLAGS_AVX = @CFLAGS_AVX@
CFLAGS_AVX2 = @CFLAGS_AVX2@
CFLAGS_AVX512F = @CFLAGS_AVX512F@
@ -369,7 +370,14 @@ EXTRA_DIST = \
msvc/vs2019/libsodium/libsodium.xml \
msvc/vs2019/libsodium.import.props \
msvc/vs2019/libsodium.import.xml \
msvc/vs2019/libsodium.sln
msvc/vs2022/libsodium.sln \
msvc/vs2022/libsodium/libsodium.props \
msvc/vs2022/libsodium/libsodium.vcxproj \
msvc/vs2022/libsodium/libsodium.vcxproj.filters \
msvc/vs2022/libsodium/libsodium.xml \
msvc/vs2022/libsodium.import.props \
msvc/vs2022/libsodium.import.xml \
msvc/vs2022/libsodium.sln
all: all-am

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>ARM64 Settings</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>ARM64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<TargetMachine>MachineARM64</TargetMachine>
</Link>
<Lib>
<AdditionalOptions>/MACHINE:ARM64 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
</Project>

@ -4,14 +4,16 @@
#include "windows.h"
//specify the version numbers for the dll's
#define LIBSODIUM_VERSION_STRING "1.0.18.0"
#define LIBSODIUM_VERSION_BIN 1,0,18,0
#define LIBSODIUM_VERSION_STRING "1.0.19.0"
#define LIBSODIUM_VERSION_BIN 1,0,19,0
//specify the product name for the dlls based on the platform we are compiling for
#if defined(x64)
#define LIBSODIUM_PRODUCT_NAME "libsodium (x64)"
#elif defined(Win32)
#define LIBSODIUM_PRODUCT_NAME "libsodium (x86)"
#elif defined(ARM64)
#define LIBSODIUM_PRODUCT_NAME "libsodium (arm64)"
#else
#define LIBSODIUM_PRODUCT_NAME "libsodium"
#endif
@ -44,10 +46,10 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "The Sodium crypto library (libsodium) "
VALUE "FileDescription", "The Sodium crypto library (libsodium)"
VALUE "FileVersion", LIBSODIUM_VERSION_STRING
VALUE "InternalName", "libsodium"
VALUE "LegalCopyright", "Copyright (c) 2013-2019 The libsodium authors."
VALUE "LegalCopyright", "Copyright (c) 2013-2023 The libsodium authors."
VALUE "OriginalFilename", "libsodium.dll"
VALUE "ProductName", LIBSODIUM_PRODUCT_NAME
VALUE "ProductVersion", LIBSODIUM_VERSION_STRING

@ -4,10 +4,11 @@
#include "export.h"
#define SODIUM_VERSION_STRING "1.0.18"
#define SODIUM_VERSION_STRING "1.0.19"
#define SODIUM_LIBRARY_VERSION_MAJOR 26
#define SODIUM_LIBRARY_VERSION_MINOR 1
#define SODIUM_LIBRARY_VERSION_MAJOR 10
#define SODIUM_LIBRARY_VERSION_MINOR 3
#ifdef __cplusplus
extern "C" {

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,50 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +67,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +104,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +165,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +202,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +227,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +244,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +253,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +264,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +315,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,50 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +67,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +104,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +165,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +202,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +227,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +244,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +253,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +264,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +315,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,50 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +67,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +104,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +165,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +202,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +227,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +244,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +253,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +264,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +315,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,50 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +67,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +104,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +165,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +202,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +227,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +244,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +253,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +264,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +315,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,50 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +67,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +104,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +165,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +202,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +227,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +244,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +253,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +264,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +315,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,74 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|ARM64">
<Configuration>DebugDLL</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
<ProjectConfiguration Include="ReleaseDLL|ARM64">
<Configuration>ReleaseDLL</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|ARM64">
<Configuration>DebugLIB</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|ARM64">
<Configuration>ReleaseLIB</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|ARM64">
<Configuration>DebugLTCG</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|ARM64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +91,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +128,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +189,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +226,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +251,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +268,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +277,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +288,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +339,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -9,42 +9,60 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DynDebug|Win32 = DynDebug|Win32
DynDebug|x64 = DynDebug|x64
DynDebug|ARM64 = DynDebug|ARM64
DynRelease|Win32 = DynRelease|Win32
DynRelease|x64 = DynRelease|x64
DynRelease|ARM64 = DynRelease|ARM64
LtcgDebug|Win32 = LtcgDebug|Win32
LtcgDebug|x64 = LtcgDebug|x64
LtcgDebug|ARM64 = LtcgDebug|ARM64
LtcgRelease|Win32 = LtcgRelease|Win32
LtcgRelease|x64 = LtcgRelease|x64
LtcgRelease|ARM64 = LtcgRelease|ARM64
StaticDebug|Win32 = StaticDebug|Win32
StaticDebug|x64 = StaticDebug|x64
StaticDebug|ARM64 = StaticDebug|ARM64
StaticRelease|Win32 = StaticRelease|Win32
StaticRelease|x64 = StaticRelease|x64
StaticRelease|ARM64 = StaticRelease|ARM64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|ARM64.ActiveCfg = DebugDLL|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|ARM64.Build.0 = DebugDLL|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|ARM64.ActiveCfg = ReleaseDLL|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|ARM64.Build.0 = ReleaseDLL|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|ARM64.ActiveCfg = DebugLTCG|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|ARM64.Build.0 = DebugLTCG|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|ARM64.ActiveCfg = ReleaseLTCG|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|ARM64.Build.0 = ReleaseLTCG|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|ARM64.ActiveCfg = DebugLIB|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|ARM64.Build.0 = DebugLIB|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|ARM64.ActiveCfg = ReleaseLIB|ARM64
{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|ARM64.Build.0 = ReleaseLIB|ARM64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
@ -10,50 +11,74 @@
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|ARM64">
<Configuration>DebugDLL</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
<ProjectConfiguration Include="ReleaseDLL|ARM64">
<Configuration>ReleaseDLL</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|ARM64">
<Configuration>DebugLIB</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|ARM64">
<Configuration>ReleaseLIB</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|ARM64">
<Configuration>DebugLTCG</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|ARM64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
@ -66,16 +91,6 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat" />
<None Include="..\..\..\..\packaging\nuget\package.config" />
<None Include="..\..\..\..\packaging\nuget\package.gsl" />
<None Include="..\..\..\..\packaging\nuget\package.nuspec" />
<None Include="..\..\..\..\packaging\nuget\package.targets" />
</ItemGroup>
<ItemGroup>
<Xml Include="..\..\..\..\packaging\nuget\package.xml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
@ -113,13 +128,15 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
@ -172,14 +189,25 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
@ -198,9 +226,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@ -223,6 +251,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
@ -239,6 +268,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
@ -247,6 +277,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
@ -257,9 +288,11 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
@ -306,6 +339,16 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />

@ -132,8 +132,8 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\sodium\verify.c">
<Filter>crypto_verify\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
@ -153,6 +153,12 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
@ -309,14 +315,44 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>crypto_hash\sha256\cp</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\sodium\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>crypto_aead\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>crypto_aead\aegis128l</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>crypto_aead\aegis256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>crypto_aead\aes256gcm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>crypto_aead\aes256gcm\aesni</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\sodium\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305\sodium</Filter>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>crypto_aead\aes256gcm\armcrypto</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>crypto_aead\chacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>crypto_secretstream\xchacha20poly1305</Filter>
@ -333,6 +369,9 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>crypto_core\hsalsa20\ref2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>crypto_core\softaes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>crypto_core\ed25519</Filter>
</ClCompile>
@ -383,15 +422,15 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -458,6 +497,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -506,6 +548,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -530,6 +575,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>include\sodium</Filter>
</ClInclude>
@ -560,6 +608,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -569,6 +620,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +761,36 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>crypto_aead\aegis256</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>crypto_core\ed25519\ref10\fe_25_5</Filter>
</ClInclude>
@ -736,24 +820,27 @@
<Filter Include="crypto_aead">
<UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis128l">
<UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aegis256">
<UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm">
<UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\aesni">
<UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\aes256gcm\armcrypto">
<UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305">
<UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\chacha20poly1305\sodium">
<UniqueIdentifier>{b145288f-68ad-3e79-93cb-e36537b20e26}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305">
<UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_aead\xchacha20poly1305\sodium">
<UniqueIdentifier>{2720c2c8-c517-356e-83ed-c2997ab782c3}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_auth">
<UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>
</Filter>
@ -805,6 +892,9 @@
<Filter Include="crypto_core\salsa\ref">
<UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_core\softaes">
<UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_generichash">
<UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>
</Filter>
@ -835,6 +925,9 @@
<Filter Include="crypto_kdf\blake2b">
<UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kdf\hkdf">
<UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_kx">
<UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>
</Filter>
@ -967,9 +1060,6 @@
<Filter Include="crypto_verify">
<UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_verify\sodium">
<UniqueIdentifier>{80669cf5-3c9c-3c60-b409-9d8fb305bc77}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>
</Filter>

@ -0,0 +1,593 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DebugDLL|Win32">
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>libsodium</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="msvc-scripts\sodium.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(SolutionDir)Build\$(Configuration)\$(Platform)\Intermediate\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\;$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\generichash_blake2b.c" />
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_kx\crypto_kx.c" />
<ClCompile Include="..\..\src\libsodium\crypto_sign\crypto_sign.c" />
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\sign_ed25519.c" />
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\obsolete.c" />
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\sign.c" />
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\keypair.c" />
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\open.c" />
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\crypto_secretbox.c" />
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\crypto_secretbox_easy.c" />
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\xsalsa20poly1305\secretbox_xsalsa20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\xchacha20poly1305\secretbox_xchacha20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\crypto_pwhash.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx512f.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ssse3.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2i.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2id.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\scrypt_platform.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt-common.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pwhash_scryptsalsa208sha256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphashx24_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash24_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\crypto_scalarmult.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\ristretto255\ref10\scalarmult_ristretto255_ref10.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\ed25519\ref10\scalarmult_ed25519_ref10.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe_frombytes_sandy2x.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_invert.c" />
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.c" />
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\crypto_onetimeauth.c" />
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.c" />
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.c" />
<ClCompile Include="..\..\src\libsodium\randombytes\randombytes.c" />
<ClCompile Include="..\..\src\libsodium\randombytes\sysrandom\randombytes_sysrandom.c" />
<ClCompile Include="..\..\src\libsodium\randombytes\internal\randombytes_internal_random.c" />
<ClCompile Include="..\..\src\libsodium\crypto_box\crypto_box_easy.c" />
<ClCompile Include="..\..\src\libsodium\crypto_box\crypto_box_seal.c" />
<ClCompile Include="..\..\src\libsodium\crypto_box\crypto_box.c" />
<ClCompile Include="..\..\src\libsodium\crypto_box\curve25519xsalsa20poly1305\box_curve25519xsalsa20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_curve25519xchacha20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\sodium\codecs.c" />
<ClCompile Include="..\..\src\libsodium\sodium\runtime.c" />
<ClCompile Include="..\..\src\libsodium\sodium\core.c" />
<ClCompile Include="..\..\src\libsodium\sodium\utils.c" />
<ClCompile Include="..\..\src\libsodium\sodium\version.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\crypto_stream.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\xchacha20\stream_xchacha20.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa2012\stream_salsa2012.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa2012\ref\stream_salsa2012_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa208\stream_salsa208.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa208\ref\stream_salsa208_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_stream\xsalsa20\stream_xsalsa20.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\crypto_hash.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-sse2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-avx2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.h" />
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-sse41.h" />
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.h" />
<ClInclude Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\sign_ed25519_ref10.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_salsa2012.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\randombytes.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash_sha256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_xchacha20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_salsa20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_onetimeauth_poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult_ristretto255.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kx.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_sign.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth_hmacsha256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_box.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_verify_32.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_ristretto255.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\runtime.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_salsa208.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aes256gcm.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa2012.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretbox_xchacha20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_verify_16.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_chacha20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_xsalsa20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_hsalsa20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_sign_ed25519.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_onetimeauth.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_generichash.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretbox_xsalsa20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretbox.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult_ed25519.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_box_curve25519xsalsa20poly1305.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\private\implementations.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-ref.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-avx2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-ssse3.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-avx512f.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt.h" />
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.h" />
<ClInclude Include="..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash_ref.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\consts_namespace.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\ladder_namespace.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\ladder.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_namespace.h" />
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.h" />
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.h" />
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.h" />
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna64.h" />
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna32.h" />
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u4.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u0.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u1.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u8.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u4.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u0.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u1.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\constants.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\fe.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\base2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\base.h" />
<ClInclude Include="..\..\builds\msvc\resource.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\builds\msvc\resource.rc">
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -0,0 +1,810 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\crypto_generichash.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\generichash_blake2b.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_kx\crypto_kx.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_sign\crypto_sign.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\sign_ed25519.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\obsolete.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\sign.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\keypair.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\open.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\crypto_secretbox.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\crypto_secretbox_easy.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\xsalsa20poly1305\secretbox_xsalsa20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_secretbox\xchacha20poly1305\secretbox_xchacha20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\crypto_pwhash.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx512f.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ssse3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2i.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2id.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\scrypt_platform.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt-common.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pwhash_scryptsalsa208sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_verify\verify.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_kdf\crypto_kdf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphashx24_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash24_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\crypto_scalarmult.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\ristretto255\ref10\scalarmult_ristretto255_ref10.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\ed25519\ref10\scalarmult_ed25519_ref10.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe_frombytes_sandy2x.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_invert.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\crypto_onetimeauth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\randombytes\randombytes.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\randombytes\sysrandom\randombytes_sysrandom.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\randombytes\internal\randombytes_internal_random.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_box\crypto_box_easy.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_box\crypto_box_seal.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_box\crypto_box.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_box\curve25519xsalsa20poly1305\box_curve25519xsalsa20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_curve25519xchacha20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\sodium\codecs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\sodium\runtime.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\sodium\core.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\sodium\utils.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\sodium\version.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\crypto_stream.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\xchacha20\stream_xchacha20.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa2012\stream_salsa2012.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa2012\ref\stream_salsa2012_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa208\stream_salsa208.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\salsa208\ref\stream_salsa208_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_stream\xsalsa20\stream_xsalsa20.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\crypto_hash.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\softaes\softaes.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-sse2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-avx2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-sse41.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_sign\ed25519\ref10\sign_ed25519_ref10.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_salsa2012.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash_sha512.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\core.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\export.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\randombytes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash_sha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_xchacha20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_salsa20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_onetimeauth_poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult_ristretto255.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_sign.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth_hmacsha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_box.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_verify_32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_ristretto255.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa208.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\randombytes_sysrandom.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\runtime.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_salsa208.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aes256gcm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa2012.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretbox_xchacha20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_verify_16.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_chacha20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_stream_xsalsa20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_hsalsa20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_shorthash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_sign_ed25519.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_onetimeauth.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_verify_64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_ed25519.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\randombytes_internal_random.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_generichash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretbox_xsalsa20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_secretbox.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_scalarmult_ed25519.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_box_curve25519xsalsa20poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\softaes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\sse2_64_32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\asm_cet.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\mutex.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\private\implementations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-ref.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-avx2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-ssse3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-avx512f.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash_ref.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\consts_namespace.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\ladder_namespace.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\ladder.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_namespace.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u4.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u0.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u1.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u8.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u4.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u0.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u1.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\implementations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\implementations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\fe.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\base2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\base.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -0,0 +1,5 @@
cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.20/ < ..\..\src\libsodium\include\sodium\version.h.in > tmp
cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MAJOR@/28/ < tmp > tmp2
cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MINOR@/0/ < tmp2 > tmp3
cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_MINIMAL_DEF@// < tmp3 > ..\..\src\libsodium\include\sodium\version.h
del tmp tmp2 tmp3

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\..\src\libsodium\include\sodium;$(SolutionDir)..\..\src\libsodium\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NATIVE_LITTLE_ENDIAN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<PreBuildEvent>
<Command>"$(SolutionDir)\msvc-scripts\process.bat"</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Process .in files</Message>
</PreBuildEvent>
<PostBuildEvent>
<Command>"$(SolutionDir)..\..\test\default\wintest.bat" $(Configuration) $(Platform)</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>Run the test suite</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

File diff suppressed because it is too large Load Diff

@ -1,5 +1,5 @@
AC_PREREQ([2.69])
AC_INIT([libsodium],[1.0.18],[https://github.com/jedisct1/libsodium/issues],[libsodium],[https://libsodium.org])
AC_INIT([libsodium],[1.0.19],[https://github.com/jedisct1/libsodium/issues],[libsodium],[https://libsodium.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([src/libsodium/sodium/version.c])
@ -12,10 +12,10 @@ AM_DEP_TRACK
AC_SUBST(VERSION)
SODIUM_LIBRARY_VERSION_MAJOR=10
SODIUM_LIBRARY_VERSION_MINOR=3
DLL_VERSION=24
SODIUM_LIBRARY_VERSION=26:0:3
SODIUM_LIBRARY_VERSION_MAJOR=26
SODIUM_LIBRARY_VERSION_MINOR=1
DLL_VERSION=26
SODIUM_LIBRARY_VERSION=27:0:1
# | | |
# +------+ | +---+
# | | |
@ -131,7 +131,7 @@ AM_CONDITIONAL([MINIMAL], [test x$enable_minimal = xyes])
AC_SUBST(SODIUM_LIBRARY_MINIMAL_DEF)
AC_ARG_WITH(pthreads, AS_HELP_STRING([--with-pthreads],
[use pthreads library, or --without-pthreads to disable threading support.]),
[use pthreads library, or --without-pthreads to disable threading support]),
[ ], [withval="yes"])
AS_IF([test "x$withval" = "xyes"], [
@ -293,23 +293,6 @@ AS_CASE([$host_os],
])
])
AC_MSG_CHECKING(for a broken Xcode version)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
#if !defined(__APPLE_CC__) || __APPLE_CC__ != 6000
#error Not Apple
#endif
#if !defined(__clang_major__) || __clang_major__ != 11
#error Not Xcode 11
#endif
]])],
[AC_MSG_RESULT(yes)
AC_MSG_WARN([Using unsupported Xcode version])
AX_CHECK_COMPILE_FLAG([$CFLAGS -fno-stack-check],
[CFLAGS="$CFLAGS -fno-stack-check"])
],
[AC_MSG_RESULT(no)
])
AS_IF([test "x$enable_ssp" != "xno"],[
AS_CASE([$host_os],
@ -324,6 +307,7 @@ AS_CASE([$host_os],
])
AX_CHECK_COMPILE_FLAG([$CFLAGS -Wall], [CWFLAGS="$CFLAGS -Wall"])
AX_CHECK_COMPILE_FLAG([$CFLAGS -Wno-deprecated-declarations], [CFLAGS="$CFLAGS -Wno-deprecated-declarations"])
AX_CHECK_COMPILE_FLAG([$CFLAGS -Wno-unknown-pragmas], [CFLAGS="$CFLAGS -Wno-unknown-pragmas"])
AC_ARG_VAR([CWFLAGS], [compilation flags for generating extra warnings])
@ -392,14 +376,101 @@ AC_SUBST(LIBTOOL_DEPS)
AC_ARG_VAR([AR], [path to the ar utility])
AC_CHECK_TOOL([AR], [ar], [ar])
dnl Checks for headers
dnl Checks for headers and codegen feature flags
target_cpu_aarch64=no
AC_MSG_CHECKING(for ARM64 target)
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([
#ifndef __aarch64__
#error Not aarch64
#endif
#include <arm_neon.h>
], [(void) 0])],
[AC_MSG_RESULT(yes)
target_cpu_aarch64=yes],
[AC_MSG_RESULT(no)
target_cpu_aarch64=no])
AS_IF([test "x$EMSCRIPTEN" = "x"], [
AS_IF([test "x$target_cpu_aarch64" = "xyes"], [
have_armcrypto=no
AC_MSG_CHECKING(for ARM crypto instructions set)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#ifdef __clang__
# pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
#elif defined(__GNUC__)
# pragma GCC target("+simd+crypto")
#endif
#ifndef __ARM_FEATURE_CRYPTO
# define __ARM_FEATURE_CRYPTO 1
#endif
#ifndef __ARM_FEATURE_AES
# define __ARM_FEATURE_AES 1
#endif
#include <arm_neon.h>
]], [[
int64x2_t x = { 0, 0 };
vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));
vmull_high_p64(vreinterpretq_p64_s64(x), vreinterpretq_p64_s64(x));
#ifdef __clang__
# pragma clang attribute pop
#endif
(void) 0
]])],
[
AC_MSG_RESULT(yes)
have_armcrypto=yes
],
[
AC_MSG_RESULT(no)
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-march=armv8-a+crypto+aes], [
CFLAGS="$CFLAGS -march=armv8-a+crypto+aes"
AC_MSG_CHECKING(for ARM crypto instructions set with -march=armv8-a+crypto+aes)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#ifdef __clang__
# pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
#elif defined(__GNUC__)
# pragma GCC target("+simd+crypto")
#endif
#ifndef __ARM_FEATURE_CRYPTO
# define __ARM_FEATURE_CRYPTO 1
#endif
#ifndef __ARM_FEATURE_AES
# define __ARM_FEATURE_AES 1
#endif
#include <arm_neon.h>
]], [[
int64x2_t x = { 0, 0 };
vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));
vmull_high_p64(vreinterpretq_p64_s64(x), vreinterpretq_p64_s64(x));
#ifdef __clang__
# pragma clang attribute pop
#endif
(void) 0
]])],
[
AC_MSG_RESULT(yes - with addition of -march=armv8-a+crypto+aes)
have_armcrypto=yes
CFLAGS_ARMCRYPTO="-march=armv8-a+crypto+aes"
],
[AC_MSG_RESULT(no)])
CFLAGS="$oldcflags"
])
])
AS_IF([test "$have_armcrypto" = "yes"],[AC_DEFINE([HAVE_ARMCRYPTO], [1], [ARM crypto extensions are available])])
])
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-mmmx], [CFLAGS="$CFLAGS -mmmx"])
AC_MSG_CHECKING(for MMX instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("mmx")
#include <mmintrin.h>
]], [[ __m64 x = _mm_setzero_si64(); ]])],
@ -412,7 +483,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-msse2], [CFLAGS="$CFLAGS -msse2"])
AC_MSG_CHECKING(for SSE2 instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("sse2")
#ifndef __SSE2__
# define __SSE2__
@ -429,7 +500,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-msse3], [CFLAGS="$CFLAGS -msse3"])
AC_MSG_CHECKING(for SSE3 instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("sse3")
#include <pmmintrin.h>
]], [[ __m128 x = _mm_addsub_ps(_mm_cvtpd_ps(_mm_setzero_pd()),
@ -443,7 +514,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-mssse3], [CFLAGS="$CFLAGS -mssse3"])
AC_MSG_CHECKING(for SSSE3 instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("ssse3")
#include <tmmintrin.h>
]], [[ __m64 x = _mm_abs_pi32(_m_from_int(0)); ]])],
@ -456,7 +527,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-msse4.1], [CFLAGS="$CFLAGS -msse4.1"])
AC_MSG_CHECKING(for SSE4.1 instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("sse4.1")
#include <smmintrin.h>
]], [[ __m128i x = _mm_minpos_epu16(_mm_setzero_si128()); ]])],
@ -469,7 +540,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-mavx], [CFLAGS="$CFLAGS -mavx"])
AC_MSG_CHECKING(for AVX instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("avx")
#include <immintrin.h>
]], [[ _mm256_zeroall(); ]])],
@ -482,7 +553,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-mavx2], [CFLAGS="$CFLAGS -mavx2"])
AC_MSG_CHECKING(for AVX2 instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("avx2")
#include <immintrin.h>
]], [[
@ -494,7 +565,7 @@ return _mm256_movemask_ps(_mm256_cmp_ps(x, y, _CMP_NEQ_OQ));
AC_DEFINE([HAVE_AVX2INTRIN_H], [1], [AVX2 is available])
AX_CHECK_COMPILE_FLAG([-mavx2], [CFLAGS_AVX2="-mavx2"])
AC_MSG_CHECKING(if _mm256_broadcastsi128_si256 is correctly defined)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("avx2")
#include <immintrin.h>
]], [[ __m256i y = _mm256_broadcastsi128_si256(_mm_setzero_si128()); ]])],
@ -509,7 +580,7 @@ return _mm256_movemask_ps(_mm256_cmp_ps(x, y, _CMP_NEQ_OQ));
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-mavx512f], [CFLAGS="$CFLAGS -mavx512f"])
AC_MSG_CHECKING(for AVX512F instructions set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("avx512f")
#include <immintrin.h>
]], [[
@ -542,7 +613,7 @@ __m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7),
AX_CHECK_COMPILE_FLAG([-maes], [CFLAGS="$CFLAGS -maes"])
AX_CHECK_COMPILE_FLAG([-mpclmul], [CFLAGS="$CFLAGS -mpclmul"])
AC_MSG_CHECKING(for AESNI instructions set and PCLMULQDQ)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("aes")
#pragma GCC target("pclmul")
#include <wmmintrin.h>
@ -559,7 +630,7 @@ __m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7),
oldcflags="$CFLAGS"
AX_CHECK_COMPILE_FLAG([-mrdrnd], [CFLAGS="$CFLAGS -mrdrnd"])
AC_MSG_CHECKING(for RDRAND)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#pragma GCC target("rdrnd")
#include <immintrin.h>
]], [[ unsigned long long x; _rdrand64_step(&x); ]])],
@ -572,6 +643,7 @@ __m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7),
])
AC_SUBST(CFLAGS_ARMCRYPTO)
AC_SUBST(CFLAGS_MMX)
AC_SUBST(CFLAGS_SSE2)
AC_SUBST(CFLAGS_SSE3)
@ -584,7 +656,9 @@ AC_SUBST(CFLAGS_AESNI)
AC_SUBST(CFLAGS_PCLMUL)
AC_SUBST(CFLAGS_RDRAND)
AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/random.h intrin.h])
AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/random.h intrin.h sys/auxv.h])
AC_CHECK_HEADERS([CommonCrypto/CommonRandom.h])
AC_CHECK_HEADERS([cet.h])
AC_MSG_CHECKING([if _xgetbv() is available])
AC_LINK_IFELSE(
@ -608,7 +682,7 @@ AC_C_BIGENDIAN(
)
AC_MSG_CHECKING(whether __STDC_LIMIT_MACROS is required)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <limits.h>
#include <stdint.h>
]], [[
@ -792,23 +866,6 @@ void f(void *x) { __dummy(x); }
AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(if data alignment is required)
aligned_access_required=yes
AS_CASE([$host_cpu],
[i?86|amd64|x86_64|powerpc*|s390*],
[aligned_access_required=no],
[arm*],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifndef __ARM_FEATURE_UNALIGNED
# error data alignment is required
#endif
]], [[]])], [aligned_access_required=no], [])]
)
AS_IF([test "x$aligned_access_required" = "xyes"],
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
AC_DEFINE([CPU_UNALIGNED_ACCESS], [1], [unaligned memory access is supported])])
AC_MSG_CHECKING(if atomic operations are supported)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
static volatile int _sodium_lock;
@ -820,6 +877,26 @@ __sync_lock_release(&_sodium_lock);
AC_DEFINE([HAVE_ATOMIC_OPS], [1], [atomic operations are supported])],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(if C11 memory fences are supported)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <stdatomic.h>
]], [[
atomic_thread_fence(memory_order_acquire);
]]
)],
[AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_C11_MEMORY_FENCES], [1], [C11 memory fences are supported])],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(if gcc memory fences are supported)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
__atomic_thread_fence(__ATOMIC_ACQUIRE);
]]
)],
[AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_GCC_MEMORY_FENCES], [1], [GCC memory fences are supported])],
[AC_MSG_RESULT(no)])
dnl Checks for functions and headers
AC_FUNC_ALLOCA
@ -839,12 +916,11 @@ AS_IF([test "x$EMSCRIPTEN" = "x"],[
#ifdef HAVE_SYS_RANDOM_H
# include <sys/random.h>
#endif
#ifdef __SANITIZE_ADDRESS__
# error A recent libasan version on an old system may intercept nonexistent functions
#endif
]], [[
unsigned char buf;
(void) getrandom((void *) &buf, 1U, 0U);
if (&getrandom != NULL) {
(void) getrandom((void *) &buf, 1U, 0U);
}
]])],
[AC_MSG_RESULT(yes)
AC_CHECK_FUNCS([getrandom])],
@ -860,12 +936,8 @@ unsigned char buf;
#ifdef HAVE_SYS_RANDOM_H
# include <sys/random.h>
#endif
#ifdef __SANITIZE_ADDRESS__
# error A recent libasan version on an old system may intercept nonexistent functions
#endif
]], [[
unsigned char buf;
if (&getentropy != NULL) {
(void) getentropy((void *) &buf, 1U);
}
@ -878,7 +950,7 @@ if (&getentropy != NULL) {
AS_IF([test "x$WASI" = "x"],[
AC_CHECK_FUNCS([getpid])
AC_CHECK_FUNCS([getauxva elf_aux_info])
AC_CHECK_FUNCS([getauxval elf_aux_info])
])
AC_CHECK_FUNCS([posix_memalign nanosleep clock_gettime])
@ -922,7 +994,6 @@ AC_CONFIG_FILES([Makefile
dist-build/Makefile
libsodium.pc
libsodium-uninstalled.pc
msvc-scripts/Makefile
src/Makefile
src/libsodium/Makefile
src/libsodium/include/Makefile

@ -231,6 +231,10 @@ find_package_handle_standard_args(sodium
VERSION_VAR
sodium_VERSION_STRING)
if (NOT sodium_FOUND)
return()
endif()
# mark file paths as advanced
mark_as_advanced(sodium_INCLUDE_DIR)
mark_as_advanced(sodium_LIBRARY_DEBUG)

Some files were not shown because too many files have changed in this diff Show More