CLASS net/minecraft/class_7434 net/minecraft/client/util/ProfileKeys COMMENT A class to fetch, load, and save the player's public and private keys. FIELD field_39074 LOGGER Lorg/slf4j/Logger; FIELD field_39075 PROFILE_KEYS_PATH Ljava/nio/file/Path; FIELD field_39076 jsonPath Ljava/nio/file/Path; FIELD field_39958 userApiService Lcom/mojang/authlib/minecraft/UserApiService; FIELD field_39959 keyFuture Ljava/util/concurrent/CompletableFuture; METHOD (Lcom/mojang/authlib/minecraft/UserApiService;Ljava/util/UUID;Ljava/nio/file/Path;)V ARG 1 userApiService ARG 2 uuid ARG 3 root METHOD method_43600 saveKeyPairToFile (Lnet/minecraft/class_7427;)V COMMENT Saves the {@code keyPair} to the cache file if {@link COMMENT net.minecraft.SharedConstants#isDevelopment} is {@code true}; COMMENT otherwise, just deletes the cache file. ARG 1 keyPair METHOD method_43601 (Lcom/google/gson/JsonElement;)V ARG 1 json METHOD method_43602 getKeyPair (Ljava/util/Optional;)Ljava/util/concurrent/CompletableFuture; COMMENT Gets the key pair from the file cache, or if it is unavailable or expired, COMMENT the Mojang server. ARG 1 currentKey METHOD method_43603 getPublicKey ()Ljava/util/Optional; COMMENT {@return the public key, or {@link java.util.Optional#empty} if there is no COMMENT public key associated with the profile} METHOD method_43605 fetchKeyPair (Lcom/mojang/authlib/minecraft/UserApiService;)Lnet/minecraft/class_7427; COMMENT {@return the key pair fetched from Mojang's server} COMMENT COMMENT @throws NetworkEncryptionException when the fetched key is malformed COMMENT @throws IOException when fetching fails ARG 1 userApiService METHOD method_43606 loadKeyPairFromFile ()Ljava/util/Optional; COMMENT {@return the profile keys from the local cache} COMMENT COMMENT

This can return expired keys. COMMENT COMMENT @implNote The cache file is stored at {@code .minecraft/profilekeys/.json}. METHOD method_44076 decodeKeyPairResponse (Lcom/mojang/authlib/yggdrasil/response/KeyPairResponse;)Lnet/minecraft/class_7428$class_7443; COMMENT {@return {@code keyPairResponse} decoded to {@link PlayerPublicKey.PublicKeyData}} COMMENT COMMENT @throws NetworkEncryptionException when the response is malformed ARG 0 keyPairResponse METHOD method_44287 getSigner ()Lnet/minecraft/class_7501; COMMENT {@return the signer, or {@code null} if there is no key pair associated with the profile} METHOD method_45104 refresh ()Ljava/util/concurrent/CompletableFuture; METHOD method_45105 (Lnet/minecraft/class_7434$class_7653;)Lnet/minecraft/class_7428; ARG 0 key METHOD method_45106 (Ljava/util/Optional;)Ljava/util/Optional; ARG 0 key METHOD method_45107 (Lnet/minecraft/class_7434$class_7653;)Lnet/minecraft/class_7428$class_7443; ARG 0 key METHOD method_45108 (Ljava/util/Optional;)Ljava/util/Optional; ARG 0 maybeKey METHOD method_45109 (Lnet/minecraft/class_7427;)Z ARG 0 key METHOD method_45111 (Ljava/util/Optional;)Ljava/util/concurrent/CompletionStage; ARG 1 key CLASS class_7653 SignableKey METHOD (Lnet/minecraft/class_7427;)V ARG 1 keyPair