Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Partendo dalle basi, ecco una definizione informale di registry:
Tuttavia:
Detto questo, può essere utile comprendere il corso per lavorare
con Tink in modo efficiente per il momento.
Cosa succede quando chiami getPrimitive() sull'handle di un set di chiavi? Inoltra la tua
al registro1, che contiene oggetti con metodi concreti per creare
e primitivi, come
chiave AESGcm o un'istanza ChunkedMac. L'attività del registro è inoltrare la chiamata
all'oggetto corretto. Funziona solo se l'oggetto è registrato, motivo per cui
è importante registrare sempre le primitive che userai.
Ma cosa succede se uso una libreria in cui sono già registrate le primitive di cui ho bisogno?
È esattamente questo il problema. Una delle ragioni per cui il registro è stato rimosso.
Perché in questo caso il tuo codice funziona solo fino a quando gli autori delle biblioteche non decidono di
non registrare più quella primitiva. A questo punto il tuo codice si interrompe
non è ovvio e poco chiaro. Quindi registrate sempre ciò che
. Ad esempio, se intendi utilizzare MAC nel codice Java, dovresti
i seguenti passaggi nella fase di configurazione:
MacConfig.register()
Questo codice garantisce che tutti gli oggetti necessari siano registrati nel
posti necessari per usare la primitiva MAC.
C'è un altro lato di questo problema. Alcune dipendenze potrebbero essere registrate
che non ti servono e da cui preferiresti non dipendere. Questo è
per rimuovere il registro globale.
all'istanza singleton globale del registro di classe, per essere precisi. Usiamo il nome "Registry" sia per la classe che per il singleton, in modo intercambiabile. ↩
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-25 UTC."],[[["\u003cp\u003eThe Registry in Tink is a global entity responsible for generating new keys and primitives, but it is intended for internal use only and is slated for removal.\u003c/p\u003e\n"],["\u003cp\u003eThe Registry forwards calls from \u003ccode\u003egetPrimitive()\u003c/code\u003e to objects that create keys and primitives, and these objects must be registered for the process to work.\u003c/p\u003e\n"],["\u003cp\u003eIt's essential to explicitly register the primitives you intend to use (e.g., \u003ccode\u003eMacConfig.register()\u003c/code\u003e), to ensure your code works consistently and doesn't rely on the unpredictable behavior of other libraries.\u003c/p\u003e\n"],["\u003cp\u003eRelying on other libraries to register primitives can lead to unexpected code breakage if the library's registration practices change, making it crucial to self-manage registrations.\u003c/p\u003e\n"]]],["The Registry is a global entity in Tink for generating keys and primitives, but it's slated for removal and should not be directly accessed. `getPrimitive()` calls are forwarded to the Registry, which then creates the correct object, if registered. It is crucial to register the primitives one intends to use directly, using method like `MacConfig.register()`, because relying on library registration leads to code fragility and unwanted dependencies. The class is considered for removal.\n"],null,[]]