Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 02/01/22 in all areas

  1. Vincent Parrett

    Forum for Spring4D

    It's definitely a significant release, a major overhaul of the collection classes which reduces generic code bloat a lot. I've been using the develop branch for the last year or so in my develop branch - while it's broken things occasionally (I just revert to a previous working commit) the fact that it's tagged as beta.1 suggests it's on the home stretch and major breaking changes from here on in are unlikely. I can tell you I removed all references to system.generics.collections in FinalBuilder (dev branch, 4M lines of code so not a small task!) and am using the DI container and it's made things significantly faster (faster startup, faster at runtime). I'm also using spring4d develop extensively in the dpm package manager project. If you don't mind some risk then I would go for it.
  2. Well, this is a private research-project about the EU Covid-certificates. I wanted to know how that stuff works and how the pieces are glued together. After a wild mixture of very interesting and also some nasty hours, I got it working. I also learned about new data formats that were previously unknown to me (hello "cbor"). Many different techniques come together here: decoding the data from Base45 (yes, forty-five) decompressing the result using the zlib-classes downloading external supplementary files using the http-components hopping from the formats "COSE" to "CBOR" to "JSON" using OpenSSL to extract and validate the digital signature against the official public keys All of this is now integrated in a small and fluffy Delphi program. This client reads the personal/medical data from the certificate displays the specific information for "vaccinated"-certificates "tested"-certificates "recovered"-certificates reads the digital signature from the certificate verifys that signature using the public keys from the official trust-list to detect fraud is clearly not an official application ready for production use anywhere Important: Some, but not all code ist from me. The unit "cbor.pas" comes from "https://github.com/mikerabat/DelphiCBOR", the interface to openssl comes from "https://github.com/Arvur/OpenSSL-Delphi". Just in case you're interested and want to try it: Download attached zip-archive. It contains the complete Delphi-project as well as the value-sets and trust-list (see #3). You need to get your hands on the openssl-libraries "libeay32.dll" and "ssleay32.dll" (not included in the downloads). These libraries must be located in the same directory as the executable. By default "Win32-Debug" is the output-path for this project. If you decide to switch to 64bit, you should provide the matching libraries. This program reads the trust-list and the so-called value-sets from external json-files. These files can be downloaded using the button "Download supplementary data" (button starts download, gives no feedback, you must restart the program afterwards). The trust-list contains the list of currently valid public-certificates. The value-sets contain the translations from IDs (values) to readable strings. All the json-files must be in the same directory as the executable - and that directory must be writable. The json-files from today are included in the download. You need - of course - an EU Covid-19 health certificate (vaccinated, tested or recovered). Take any barcode-scanner to translate the barcode into textual representation: You should get a string starting with "HC1:". Paste that code into the windows that opened after pressing "Scan certificate". CovDemo_06-Feb-2022.zip
  3. Uwe Raabe

    Fill Class Variables from a table row??

    I have slightly changed the CompanyData unit to get rid of the many class vars in favor of a singleton implementation. Instead of TCompanyData.mlcApplicationGlobalEmails you should write MyCompanyData.mlcApplicationGlobalEmails. With this change you can make use of the DataSetHelper unit mentioned above. You only need to use that unit inside your data module and load the customer data like this: Company.Open; Company.LoadInstanceFromCurrent(MyCompanyData); Company.Close; CompanyData1.zip
  4. Ian Branch

    Fill Class Variables from a table row??

    Hi Lars, It is the User's Company and the User is only associated with one company so that Company table row/data is loaded to TCompany. There are multiple Users, 80+, with 3 Companies in the Company table. Each User has a Unique UserID related to one of the companies. When they log in their related Company details are loaded to TCompany for use throughout the various units in the App(s). In essence, this is my way of having Global Company variables. Ian
  5. Attila Kovacs

    Remote Delphi developer position

    you just failed using a simple forum by posting this under "RTL and Delphi Object Pascal"
×