Jump to content

Fred Ahrens

Members
  • Content Count

    35
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Fred Ahrens


  1. 3 hours ago, Vincent Parrett said:

    I did sign up for this - 10 hours so far and all I have had is a confirm email address - status us still "in progress"

    Our Trusted Signing validation took about 30 minutes from creating the validation request until successful validation. But we are also Microsoft Partner for many years and this might have produced already enough interaction between Microsoft and us for giving them enough material for speedy validation.
    If the related documentation is correct, Trusted Signing is still in preview and is currently open only to companies that are registered more than 3 years with an Azure account.


  2. Got it working with the help of the documentation available at Code signing on Windows with Azure Trusted Signing · Melatonin 

     

    Most related documents currently online (including Microsofts documentation) still have a major error in the description of the metadata.json format. Instead of using the "TrustedCodeSigningAccount" entry you will need the entry "CodeSignigAcccountName" and set it to the name of the Trusted Signing Account in Azure -, not your e-mail address you use for logging into Azure or other Microsoft services.


  3. I tried it and it still feels very "previewish". After being able to create the signing account, getting my identity validated and creating a first certificate, I'm currently stuck at properly submitting my credentials while trying to sign an exe with SignTool.exe.

    The available documentation still lacks a lot of important details and it's still too new to find suitable help at stackoverflow or similar.

     

    It might work better if you use it via Azure DevOps or GitHub. But so far it still needs some finetuning - especially the documentation - before it can be used with SignTool.exe.

     

    With the tool available at https://docs.rs/crate/trusted-signing-cli/0.2.0 I came the closest so far with simple signing an exe file - but still get errors I can't get any further explanation for.


  4. On 2/27/2024 at 1:19 PM, Vincent Parrett said:

    Virtual here stays connected until you tell to disconnect or the link goes down. Virtualhere client also has an "auto use this device" option so it will always be available.

    You can control the client via command line (see https://www.virtualhere.com/client_api). This allows you to create build scripts that temporarily activate the dongle on the client system only when it's needed for signing your files and deactivating it after when the script finishes.


  5. 1 hour ago, Vincent Parrett said:

    ... and more recently to proxmox (couldn't be happier).

     

     

    +1 for Proxmox. For a very long time I had the impression, it's an "enthusiasts platform for virtualization". One of our customers "forced" us to test our software under Proxmox and 1 month later most of our bare metal machines and VMs were migrated to Proxmox VMs and containers. Couldn't be happier too.

    • Like 1
    • Thanks 1

  6. For using the code signing dongles (or any other USB device) I recommend VirtualHere. Install the VirtualHere server in the host machine and your USB dongles/devices connected to the host can be accessed via a simple client within your VMs. It's not free but not expensive and just works.

    Meanwhile we switched from Hyper-V to Proxmox as it has built-in USB-pass-through and other features missing in Hyper-V. But main reason was: there is actually no longer a free stand-alone Hyper-V server as it got discontinued by Microsoft.

    • Like 1

  7. 3 hours ago, PhilPlus said:

     

    The problem is not so much the bug/fault on the site (it happens to everyone) but the time taken to resolve it. Not serious.

    For me it's the lack of communication. Errors happen, but at a certain stage they should start to communicate about the error and give some advice about expected timeframe for fixing the problem, possible workarounds and so on. I really don't care (that much) how long this takes - but it would be nice to get some regular updates about the progress made.

     

    We are now in a situation where we have to review our development environment and make it as independent as possible from the availability of Embarcadero servers. In result we have to stop using GetIt, and other services may follow.

    • Like 5
    • Sad 1

  8. Sorting units by name is dangerous.

    There are some units that need to be added at the end of the list, if they overwrite some behavior's of objects and functions of other units above in the list. There are other units that need to be placed on top of the list if they do some special initialization that needs to be done in the app as soon as possible, before any other parts of the app start to initialize.

    • Like 4

  9. I prefer Alternative 1 but I wouldn't use "else". Using "else" might slightly improve performance in some cases, but without the "else" I think the code can be parsed better during code reviews (gets closer to the readability of the version using the case statement).

    if aMessageType = 'EXPREG' then
      DecodeExportReg(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPACC' then
      DecodeExportAcc(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPERR' then
      DecodeExportErr(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPREL' then
      DecodeExportRel(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPREF' then
      DecodeExportRef(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPREQ' then
      DecodeExportReq(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPINF' then
      DecodeExportInf(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPREJ' then
      DecodeExportRej(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPCLA' then
      DecodeExportCla(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPCON' then
      DecodeExportCon(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPAME' then
      DecodeExportAme(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPIRJ' then
      DecodeExportIrj(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPARJ' then
      DecodeExportArj(vDoc, aCdn, aRequestCorrelation, aMessageText);
    if aMessageType = 'EXPHRT' then
      DecodeExportHrt(vDoc, aCdn, aRequestCorrelation, aMessageText);

    OT: just learned about the existence of IndexStr. 


  10. 1 hour ago, softtouch said:

    Delphi 11.3 always rearrange its toolbars with every start.

    The first attached image shows how it should look after I move them to their positions, the second image shows what Delphi 11.3 makes out of it. With every restart of the IDE, I have to rearrange the top toolbars 😞

    I am using a 4K monitor with a scaling of 125%.

    When I use Delphi DPI unaware, it stays always the same, when I use a monitor scaling of 100%, it always stays the same, but when I use a monitor scaling of 125% on my 4K display, it rearrange the toolbars.

    That did not happen in any version below 11.3 (11.0, 11.1, 11.2).

     

    Delphi_11_2023-02-28_08-33-04.png

    Delphi_11_2023-02-28_08-33-36.png

    This looks like a rounding problem in the function that calculates the toolbar sections.

    As a workaround you can try to move each section of the toolbar to the right while leaving gaps with some pixels width between all sections. This should avoid the overlapping of sections due to the calculation error and prevent moving toolbar sections to the next free line on the toolbar.
    (not tested just guessed)


  11. uses
      Vcl.ExtActns;
    
    procedure Download(URL: String; FileName: String);
    var
      DownloadAction: TDownloadUrl;
    begin
      DownloadAction := TDownloadUrl.Create(nil);
      DownloadAction.Filename:=FileName;
      DownloadAction.URL:=URL;
      DownloadAction.Execute;
      DownloadAction.Free;
    end;

    But no error handling at all.

    • Thanks 1

  12. Wow.

    We started using CDATA connectors already two years before Embarcadero started bundling it with some of the Delphi SKUs.

    I wasn't aware that license conditions have changed. I just checked and compared with older EULAs shown during the CDATA component installation and there wasn't a limitation to inhouse distribution only. The 2018 version of the EULA was more similar to typical other component packages - only the typical restrictions did apply.

     

    With this license change we'll have to stop using CDATA components. I guess we could afford to pay the costs for upgrading our existing licenses and bring them back to a royalty-free distribution model. Finally it would be a stupid investment as we don't know what other changes might be introduced in the licenses through the backdoor and might render our investment useless (again). I'll be happier with spending that money at other component developers who have a more developer-friendly business model.

    • Like 4

  13. The drivers are available for download at https://www.cdata.com/drivers/.

    You will need to choose the driver you want to download. At the top of the next page you will need to choose "Firedac" from the toolbar. On the next page click on "Download" and on the final page "Download Full". The "Download Full" button looks disabled but is working and downloads the licensed version of the driver.

    You will need your product key (it's the same for all CData drivers) for starting the download.

     

     


  14. Sometimes the source of such problems isn't obvious at all. A while ago while having similar problems for a long time I observed in the Events window in the IDE when starting the app, a dll belonging to my Razer headset got injected into the app and caused a lot of strange behavior. After uninstalling the headset's driver, everything went back to normal.
    Whenever I have similar problems, first I disable all non-essential programs in Task Manager > Startup. 

    Disabling Windows Updates isn't a good idea. I'm not talking here about security and 0day exploits. Assuming that most developers have the Windows Update set to normal settings brings you to the same level as other developers and will give you a better chance to find somebody who might have similar problems like you and who might already have a solution. 

    • Like 3

  15. For testing I uploaded your file to our own domain and still get the error while downloading it from there. So the source of the download doesn't seem to be the source of the problem. It seems to be a problem with the digital signature.

     

    It may help to add a second signature using sha1 digest algorithm. It won't hurt and will give you also some compatibility with downloading the file on older Windows versions. This will also change the checksum of your file and provides a good chance that it won't be detected again that has been flagged as critical due to unknown reasons.

     

    Some years ago we also used Comodo certificates. When we had similar problems it helped just to sign and upload the affected file again.

     

    Meanwhile we switched to DigiCert signatures and those problems went away. This also lowered false positive detection of our binaries by some virus scanners.

     

     


  16. I'm just guessing: It could be a problem that the file isn't downloaded from your domain but from storage.googleapis.com. At the end whenever another identified malware was downloaded via storage.googleapis.com your downloads are flagged as well as potential malware - you just don't have this under control as anybody can use this domain for downloads. I would try moving the downloads to your own domain.

    • Like 1
×