sgcCustomIndy TLS 1.3. HTTP/2 via ALPN. Nada para desinstalar.

A biblioteca Indy padrão não oferece suporte a ALPN, nem a TLS 1.3 por meio do OpenSSL 1.1.1 ou 3.x. O sgcWebSockets Enterprise inclui uma versão personalizada do Indy que oferece. O sgcCustomIndy leva essa mesma versão ao sgcWebSockets Core, instalada ao lado do Indy que já está na sua IDE.

  • ALPN e HTTP/2
  • TLS 1.3
  • OpenSSL 1.1.1 e 3.x
  • OpenSSL estático
  • Delphi 7 a 13
  • C++ Builder
INDY PADRÃO IdGlobal.pas IdTCPClient.pas IdSSLOpenSSL.pas já na sua IDE, continua instalado INDY PERSONALIZADO sgcIdGlobal.pas sgcIdTCPClient.pas sgcIdSSLOpenSSL.pas adicionado pelo pacote, nenhum nome colide HANDSHAKE TLS 1.3 COM ALPN Cliente Servidor ClientHello, ALPN [h2, http/1.1] ServerHello, ALPN h2 Streams HTTP/2 em uma conexão
  • 0Bibliotecas Indy para desinstalar
  • 0Instalações do Indy 10 no Delphi 7
  • 3Recursos que o Indy padrão não tem
  • 1Unit para o OpenSSL estático
  • 2Destinos de linkagem estática, Windows 32 e 64 bits
O que ele libera

Três coisas que a biblioteca Indy padrão não consegue fazer.

Cada item abaixo é uma capacidade da própria camada Indy, e não de um componente acima dela. Por isso trocar a biblioteca Indy é o que os ativa.

CLIENTHELLO ALPN oferece h2 http/1.1 Servidor escolhe h2 stream 1 stream 3 stream 5 Streams HTTP/2 Negociado dentro do handshake TLS, abaixo de qualquer componente HTTP.
ALPN

A extensão sobre a qual o HTTP/2 é construído.

  • O cliente anuncia os protocolos que sabe falar, e o servidor escolhe um, durante o handshake TLS.
  • Essa negociação acontece dentro da camada TLS, abaixo de tudo o que um componente HTTP consegue alcançar.
  • A biblioteca Indy padrão não a suporta. A biblioteca Indy personalizada disponibiliza o ALPN e, com ele, o HTTP/2.
INDY PADRÃO TLS 1.3 limitado à API mais antiga do OpenSSL INDY PERSONALIZADO TLS 1.3 OpenSSL 1.1.1 OpenSSL 3.x Clientes e servidores alcançam endpoints que exigem TLS 1.3.
TLS 1.3, OpenSSL 1.1.1 e 3.x

Os ramos modernos do OpenSSL, enfim ao alcance.

  • O TLS 1.3 exige OpenSSL 1.1.1 ou OpenSSL 3.0.0, e a biblioteca Indy padrão não suporta esses ramos.
  • A biblioteca Indy personalizada suporta, então um cliente ou servidor construído sobre ela negocia TLS 1.3 com endpoints que o exigem.
  • Sem o limite do que a API antiga do OpenSSL oferece.
TRÊS ARQUIVOS app.exe libssl libcrypto UM ARQUIVO app.exe OpenSSL linkado uses sgcIdSSLOpenSSL_Static; Windows 32 e 64 bits, Delphi XE2 ou mais novo.
OpenSSL estático

OpenSSL dentro do executável.

  • O OpenSSL é linkado diretamente na sua aplicação, em vez de carregado em tempo de execução a partir das DLLs libcrypto e libssl.
  • Uma aplicação TLS é distribuída como um único arquivo, tanto para componentes cliente quanto servidor.
  • Só tem efeito quando a biblioteca Indy personalizada está em uso, no Windows 32 e 64 bits com Delphi XE2 ou mais novo.
Coexistência

Ele fica ao lado do Indy que você já tem.

Substituir a biblioteca Indy em uma IDE é a parte que ninguém quer fazer, então este pacote não exige isso. Os arquivos do Indy personalizado levam o prefixo sgc, IdGlobal vira sgcIdGlobal, e as duas versões coexistem sem problemas.

Nada para desinstalar

Qualquer Indy que sua IDE já tenha continua instalado e registrado. Não há etapa em que você remove um pacote, o restaura depois ou mantém dois perfis de IDE.

Projetos existentes intactos

Tudo o que você já compila com a biblioteca Indy padrão continua compilando com ela, com as mesmas units byte a byte. A versão personalizada é adicional, não uma substituição.

Um único define de compilador

O uso da biblioteca Indy personalizada é controlado por SGC_CUSTOM_INDY em sgcVer.inc. Desligar a versão personalizada de novo é uma mudança de uma linha.

Código-fonte completo, como sempre

As units do Indy renomeadas acompanham a licença como código-fonte, então compilam com as configurações do seu projeto e podem ser percorridas no depurador como o restante da biblioteca.

Sem instalar o Indy 10 no Delphi 7

O Delphi 7 vem com um Indy mais antigo. Com a biblioteca Indy personalizada incluída, não há Indy 10 para encontrar, instalar na IDE ou manter compatível com os componentes.

A versão que o Enterprise usa

A biblioteca Indy personalizada não é nova. É a base sobre a qual o sgcWebSockets Enterprise foi construído, e este pacote é o caminho até ela para o sgcWebSockets Core.

O código

Uma unit, um arquivo para distribuir.

Não há nada para configurar. Adicione sgcIdSSLOpenSSL_Static à cláusula uses, por exemplo no .dpr principal, e a aplicação passa a usar o OpenSSL linkado no executável na próxima execução.

Project1.dpr

uses
  sgcIdSSLOpenSSL_Static;

// That is the whole configuration. No compiler
// directive to enable, no OpenSSL API version to
// choose. Remove the unit again and the application
// goes back to loading the OpenSSL DLLs.

sgcVer.inc, na pasta de código-fonte

{$DEFINE SGC_CUSTOM_INDY}

// One define controls the custom Indy library.
// Static OpenSSL linking has no effect without it,
// and turning the custom build off again is a
// one line change.

Em uma versão ou plataforma onde a linkagem estática não está disponível, nada quebra. A aplicação continua carregando as DLLs do OpenSSL como antes, então o mesmo código-fonte compila em qualquer lugar. Onde a linkagem estática se aplica

Plataformas

Onde um arquivo objeto neste formato pode ser linkado.

  • Windows 32 bits
  • Windows 64 bits

Compilador

Versões mais antigas relatam formato de arquivo objeto inválido, então a linkagem estática começa no Delphi XE2.

  • Delphi XE2 e mais novos

Pré-requisito

A linkagem estática não tem efeito sem a biblioteca Indy personalizada em uso.

  • SGC_CUSTOM_INDY definido
Parte do sgcWebSockets

Um complemento, não um pedido separado.

O sgcCustomIndy se anexa a uma licença do sgcWebSockets Core. Ele é oferecido como o primeiro complemento recomendado dentro de um pedido Core, então você o adiciona com um clique ao pedir sgcAI, sgcMQ ou sgcSocial, e ele chega na mesma licença.

Core com sgcCustomIndy

A mesma versão personalizada que o Enterprise usa, adicionada durante um pedido Core. Código-fonte completo e 1 ano de atualizações.

€149 / desenvolvedor

Incluído com sgcAuth e sgcHTTP

O suporte a WebAuthn no sgcAuth e os clientes HTTP/2 e gRPC no sgcHTTP o exigem, então pedir qualquer um dos pacotes sempre inclui o sgcCustomIndy. O preço de tabela do pacote já o cobre.

Já no Enterprise e no All-Access

A biblioteca Indy personalizada faz parte do sgcWebSockets Enterprise e do All-Access da eSeGeCe, ativada por padrão. Se você tem qualquer um dos dois, não há nada a adicionar. Standard e Professional usam a biblioteca Indy padrão.

Não é a mesma coisa que o sgcIndy, o pacote Indy completo que você instala no lugar do Indy da sua IDE. Qual edição você precisa

Ver preços

Atualize a camada Indy.

ALPN e HTTP/2, TLS 1.3 sobre OpenSSL 1.1.1 e 3.x e OpenSSL dentro do executável no Windows. Tudo ao lado do Indy que você já tem. A avaliação do sgcWebSockets tem o conjunto completo de recursos do Enterprise, Indy personalizado incluído.

Últimas do blog

Ver todas as publicações →

Você está vendo a visão sgcCustomIndy da eSeGeCe.

Mostre outro ângulo →
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso