Hi, my name is Ronko, and I'm here to give you a rolling tool of Ag plugin S.E.
So, strapping.
As an anyplace, Ag plugin S.E. is a plugin for Ag, which is a simple modern and secure file encryption tool.
But the plugin does is it protects the secrets that are used by Ag using the secure enclave in your Apple device.
The plugin is actually a single binary, which you start by invoking to create a key pair.
The private key you keep to yourself, and the short public key you can send to others.
Using this short public key, you can now encrypt any file on any device, even when you completely different OS.
To decrypt the files, you need the private key, and the secure enclave with which this private key was created.
Now, this particular key was actually configured to require touch ID to operate, so after touching my touch sensor, the file is now decrypted.
There's a whole ecosystem of applications that use Ag, for example, you can use Ag as a back end of a password manager, and use this plugin to conveniently access your passwords with just a touch.
Now let's have a look at the word.
All the cryptographic operations used by this plugin are provided by Apple Crypto Kit.
Apple Crypto Kit is switched on, so that's why this plugin is also implemented entirely in Swift.
Apple Crypto Kit is also the only dependency that this plugin has.
Now, quickly, it itself is not a cross platform, but Swift Crypto is an open source and open replacement for cryptocurrency that is supported on both Linux and Windows.
Swift Crypto doesn't support the Apple only secure enclave APIs, but it does support all the other preventives that are necessary to encrypt files.
And that's actually all you need on these other operating systems.
The build of the plugin is also a cross platform, all you need is the Swift twitching, so now need for Xcode, which was a problem up until today.
All you have to do is run Swift build on any platform and you have the plugin built.
Unfortunately, if, like me, you use our pandemics, there are some complications.
The Swift twitching uses G-lipsy, so that means you cannot simply call the compiler on a user-based system like our pandemics.
And what goes to describe the couple of ways of getting a Swift apps to run on our pandemics, the latest easiest way is to use a cross compilation to use Swift on macOS to do cross compiling and create a new platform.
Compiling and create a static Linux binary that works on any Linux version, even our pandemics.
Combined with a custom script that I wrote on the GitHub, with these builders of this plugin, create an installed our pandemics package.
The downside of this approach is that the binary is the static Linux binary that are generated are still much bigger than what they actually could be.
I hope that this is improved in the future, or even better that Swift is supported on user-based Linux versions.
The plugin itself is pretty well tested, and there are integration tests, but most of the majority of the code is covered using unit tests.
Of course, you can simply run the tests on any platform that is in Swift test.
Swift test also has flags to collect coverage information, but without X codes, how you display this coverage information is up to you.
I wrote a script in Swift that creates a summary of all this coverage data of your tests, and also generates browser profiles that you can inspect your code from within your web browser.
The script also generates a batch at put on your readme, your readme file.
So, I use them as my code editor, obviously, and to be able to see the coverage information in my editor, I have a support for Swift to deliver in coverage applied in.
Together with the test, this allows you to do some efficient tests within development.
So, that's it. That was my quick experience of implementing a Swift code platform.
Swift crypto app. You can read some letters at the bottom of the post, and be sure to check out all the other open source projects that I mentioned. Thank you.