Przejdź do głównej zawartości
getnextpdf.com

Enterprise edycja

Contracts — szczegółowa referencja

Moduł Contracts to szew integracyjny Enterprise dla klientów RFC 3161 Time Stamp Authority.

  • TsaClientInterface deklaruje jedną operację: żądanie zakodowanego w DER tokenu TimeStampToken dla wstępnie obliczonego skrótu dokumentu.
  • TsaClientAdapter łączy klienta znaczników czasu Core, klasę final, z tym interfejsem bez zmiany zachowania.
  • Komponenty Enterprise, takie jak LtvManager i DocumentTimestamp, przyjmują ten interfejs, dzięki czemu zachowanie TSA jest wstrzykiwalne i wymienne w testach.
  • Przez szew przechodzi wyłącznie skrót dokumentu; treść dokumentu nigdy.

Wskazówki dotyczące procesu znajdziesz najpierw na stronie możliwości Contracts.

Ta możliwość jest dostarczana w NextPDF Enterprise (nextpdf/enterprise) i aktywuje się wraz z kopertą licencyjną poziomu Enterprise. Wdrożenie bez tego uprawnienia nie ładuje klas tej możliwości. Porównaj edycje i uzyskaj licencję.

Interfejs nie wykonuje żadnej pracy i samodzielnie niczego nie bramkuje. Korzystające z niego powierzchnie Enterprise egzekwują własne kody możliwości, takie jak enterprise.compliance.evidence na powierzchni compliance-evidence.

PoziomZapewnia
CoreKonkretny TsaClient (final), który wykonuje żądania RFC 3161
ProBrak odpowiednika modułu Contracts
EnterpriseSzew TsaClientInterface i most TsaClientAdapter
Okno terminala
composer require nextpdf/enterprise:^3
SymbolParametryDomyślne zachowanieZwracaZgłasza lub kończy się niepowodzeniemUwagi
TsaClientInterface::getDocumentTimestamp()string $documentHashDeklaruje żądanie tokenu znacznika czasu dla wstępnie obliczonego skrótu dokumentustring — zakodowany w DER TimeStampTokenZależne od implementacji; interfejs nie deklaruje żadnego wyjątkuJedyna operacja; źródło dokumentuje wejście jako skrót SHA-256
TsaClientAdapter::__construct()TsaClient $clientPrzechowuje klienta znaczników czasu CoreTsaClientAdapterNic nie zadeklarowanofinal readonly; promocja konstruktora
TsaClientAdapter::getDocumentTimestamp()string $documentHashPrzekazuje do TsaClient::getDocumentTimestamp() bez zmianstring — zakodowany w DER TimeStampTokenTsaException od klienta Core, przekazany bez zmianNie dodaje zachowania; niczego nie połyka
namespace NextPDF\Enterprise\Contracts;
interface TsaClientInterface
{
/**
* Request a timestamp token for a document hash.
*
* @param string $documentHash SHA-256 digest of the document content
*
* @return string DER-encoded TimeStampToken
*/
public function getDocumentTimestamp(string $documentHash): string;
}
namespace NextPDF\Enterprise\Contracts;
use NextPDF\Security\Timestamp\TsaClient;
final readonly class TsaClientAdapter implements TsaClientInterface
{
public function __construct(
private TsaClient $client,
)
public function getDocumentTimestamp(string $documentHash): string
}

TsaClientInterface::getDocumentTimestamp(string $documentHash): string zwraca zakodowany w DER token TimeStampToken zgodny z RFC 3161 dla skrótu dokumentu. Reguły obserwowalne z zewnątrz:

  • Interfejs deklaruje jedną operację; nie waliduje tokenu, nie poręcza za TSA ani nie stwierdza skutku prawnego.
  • TsaClientAdapter przekazuje wywołanie do klienta znaczników czasu Core bez zmian — bez dodanego zachowania, bez dodatkowych ponowień, bez połkniętych wyjątków, bez dodatkowych gwarancji. Jego jedynym celem jest umożliwienie, aby final klient Core spełniał interfejs skierowany do Enterprise na potrzeby inwersji zależności i testowania.
  • Przez granicę przechodzi wyłącznie skrót dokumentu; żadna treść dokumentu nie jest przekazywana.
  • Za adapterem klient Core odrzuca — z TsaException, fail-closed, przed jakąkolwiek aktywnością sieciową — skrót, którego długość nie odpowiada skonfigurowanemu algorytmowi odcisku. W przeciwnym razie błędnie oznaczony odcisk wytworzyłby token, którego żaden zgodny walidator nie może powiązać.
  • Powierzchnie korzystające: LtvManager przyjmuje opcjonalny TsaClientInterface i wymaga go dla PAdES B-LTA. DocumentTimestamp używa kontraktu do wypełnienia /Contents słownika podpisu /DocTimeStamp. Wykonawca odnawiania archiwum LTV (LtvaRenewalExecutor) podłącza TsaClientAdapter wokół klienta Core przy odnawianiu znaczników czasu dokumentu.
  • Adapter przekazuje wyjątki z bazowego klienta bez zmian; niepowodzenia TSA muszą być obsłużone w miejscu wywołania.
  • Skrót musi być surowymi bajtami zgodnie ze skonfigurowanym algorytmem odcisku konkretnego klienta (domyślnie SHA-256, 32 bajty). Skrót zakodowany szesnastkowo ma niewłaściwą długość i jest odrzucany przed wysłaniem jakiegokolwiek żądania.
  • Zwrócony token to bajty, a nie werdykt; waliduj go tam, gdzie jest to wymagane.
  • Własna implementacja jest właścicielem swojej własnej powierzchni awarii. Kontrakt ustala jedynie kształt zwracanej wartości: zakodowany w DER TimeStampToken.

Ten moduł nie wykonuje żadnych operacji kryptograficznych. Wybór algorytmu oraz zachowanie w trybie FIPS są zarządzane przez konkretnego klienta TSA i moduł Security. Zobacz pełną dokumentację referencyjną FIPS 140.

ZachowanieOdniesienie
Żądanie i powiązanie tokenu znacznika czasuIETF RFC 3161 §2
TimeStampReq niesie MessageImprint: identyfikator algorytmu skrótu oraz skrót danych do oznaczenia znacznikiem czasuIETF RFC 3161 §2.4.1
messageImprint tokenu musi być równy wartości żądania, przy czym rozmiar skrótu odpowiada zidentyfikowanemu algorytmowiIETF RFC 3161 §2.4.2

Kontrakt jest ukształtowany wokół RFC 3161; właściwe żądanie tokenu oraz ewentualna weryfikacja są wykonywane przez konkretnego klienta i powierzchnie Evidence/Signature. Interfejs nie formułuje żadnego twierdzenia o zgodności ani atestacji. NextPDF nie formułuje żadnego twierdzenia o certyfikacji.

  • Oba typy noszą @since 3.0.0; ta dokumentacja opisuje powierzchnię w postaci dostarczonej w nextpdf/enterprise 3.1.0.
  • Wstrzykuj TsaClientInterface w komponentach, które potrzebują znaczników czasu; podłącz TsaClientAdapter lub własną implementację w korzeniu kompozycji. W testach jednostkowych podstaw atrapę testową zamiast działającego TSA.
  • Operator jest właścicielem konkretnego klienta TSA stojącego za adapterem: rezydencja, granica zaufania punktu końcowego TSA oraz weryfikacja łańcucha certyfikatów dotyczą tego klienta, a nie tego interfejsu.
  • Do tej powierzchni kontraktu nie ma zastosowania żadne ograniczenie kontroli eksportu. Uzyskanie tokenu znacznika czasu wspiera procesy audytu i walidacji długoterminowej; nie jest atestacją prawną ani certyfikacją. Niniejsza dokumentacja nie stanowi opinii prawnej.
  • Szczegóły wewnętrznego mechanizmu pozostają w wewnętrznej dokumentacji repozytorium źródłowego i są poza zakresem tego podręcznika.

Ta strona dokumentuje wyłącznie zachowanie obserwowalne z zewnątrz oraz wspieraną powierzchnię publicznego API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.