Record Class PlayerPublicKey

java.lang.Object
java.lang.Record
net.minecraft.network.encryption.PlayerPublicKey
Record Components:
expiresAt -
keyString - the PEM-formatted X.509 encoded key
signature - the signature certifying that this key is provided from Mojang's server

public record PlayerPublicKey(Instant expiresAt, String keyString, String signature) extends Record
An RSA public key for a player, signed by the Mojang's server.

Users cannot generate the keys themselves; this must be provided from Mojang's authentication server.

See Also:
Mappings:
Namespace Name
official brv
intermediary net/minecraft/class_7428
named net/minecraft/network/encryption/PlayerPublicKey
official b
intermediary comp_744
named expiresAt
official c
intermediary comp_745
named keyString
official d
intermediary comp_746
named signature
  • Field Details

    • expiresAt

      private final Instant expiresAt
      The field for the expiresAt record component.
    • keyString

      private final String keyString
      The field for the keyString record component.
    • signature

      private final String signature
      The field for the signature record component.
    • CODEC

      public static final com.mojang.serialization.Codec<PlayerPublicKey> CODEC
      Mappings:
      Namespace Name Mixin selector
      official a Lbrv;a:Lcom/mojang/serialization/Codec;
      intermediary field_39050 Lnet/minecraft/class_7428;field_39050:Lcom/mojang/serialization/Codec;
      named CODEC Lnet/minecraft/network/encryption/PlayerPublicKey;CODEC:Lcom/mojang/serialization/Codec;
    • PUBLIC_KEY

      private static final String PUBLIC_KEY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official e Lbrv;e:Ljava/lang/String;
      intermediary field_39051 Lnet/minecraft/class_7428;field_39051:Ljava/lang/String;
      named PUBLIC_KEY Lnet/minecraft/network/encryption/PlayerPublicKey;PUBLIC_KEY:Ljava/lang/String;
  • Constructor Details

    • PlayerPublicKey

      public PlayerPublicKey(com.mojang.datafixers.util.Pair<Instant,String> expiresAtAndKey, String signature)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lbrv;<init>(Lcom/mojang/datafixers/util/Pair;Ljava/lang/String;)V
      intermediary <init> Lnet/minecraft/class_7428;<init>(Lcom/mojang/datafixers/util/Pair;Ljava/lang/String;)V
      named <init> Lnet/minecraft/network/encryption/PlayerPublicKey;<init>(Lcom/mojang/datafixers/util/Pair;Ljava/lang/String;)V
    • PlayerPublicKey

      public PlayerPublicKey(Instant instant, String string, String string2)
  • Method Details

    • fromGameProfile

      public static Optional<PlayerPublicKey> fromGameProfile(com.mojang.authlib.GameProfile gameProfile)
      Returns the public key extracted from the gameProfile.
      Returns:
      the public key extracted from the gameProfile
      API Note:
      This can return an empty value if the profile lacks the public key.
      Mappings:
      Namespace Name Mixin selector
      official a Lbrv;a(Lcom/mojang/authlib/GameProfile;)Ljava/util/Optional;
      intermediary method_43549 Lnet/minecraft/class_7428;method_43549(Lcom/mojang/authlib/GameProfile;)Ljava/util/Optional;
      named fromGameProfile Lnet/minecraft/network/encryption/PlayerPublicKey;fromGameProfile(Lcom/mojang/authlib/GameProfile;)Ljava/util/Optional;
    • write

      public com.mojang.authlib.GameProfile write(com.mojang.authlib.GameProfile gameProfile)
      Writes the public key to the gameProfile properties under the "publicKey" key.
      Mappings:
      Namespace Name Mixin selector
      official b Lbrv;b(Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile;
      intermediary method_43555 Lnet/minecraft/class_7428;method_43555(Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile;
      named write Lnet/minecraft/network/encryption/PlayerPublicKey;write(Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile;
    • verifyAndDecode

      public PlayerPublicKey.PublicKeyData verifyAndDecode(com.mojang.authlib.minecraft.MinecraftSessionService sessionService) throws com.mojang.authlib.minecraft.InsecurePublicKeyException, NetworkEncryptionException
      Verifies the public key and decodes it.

      The checks whether the public key is present, signed with the Mojang's private key, and not expired.

      Throws:
      com.mojang.authlib.minecraft.InsecurePublicKeyException.MissingException - when the key is missing or empty
      com.mojang.authlib.minecraft.InsecurePublicKeyException.InvalidException - when the key is unsigned or expired
      NetworkEncryptionException - when the key is malformed
      com.mojang.authlib.minecraft.InsecurePublicKeyException
      Mappings:
      Namespace Name Mixin selector
      official a Lbrv;a(Lcom/mojang/authlib/minecraft/MinecraftSessionService;)Lbrv$a;
      intermediary method_43550 Lnet/minecraft/class_7428;method_43550(Lcom/mojang/authlib/minecraft/MinecraftSessionService;)Lnet/minecraft/class_7428$class_7429;
      named verifyAndDecode Lnet/minecraft/network/encryption/PlayerPublicKey;verifyAndDecode(Lcom/mojang/authlib/minecraft/MinecraftSessionService;)Lnet/minecraft/network/encryption/PlayerPublicKey$PublicKeyData;
    • parse

      private static Optional<com.mojang.datafixers.util.Pair<Instant,String>> parse(String contents)
      Returns the expiry time and the key content parsed from contents.
      Returns:
      the expiry time and the key content parsed from contents
      Mappings:
      Namespace Name Mixin selector
      official a Lbrv;a(Ljava/lang/String;)Ljava/util/Optional;
      intermediary method_43552 Lnet/minecraft/class_7428;method_43552(Ljava/lang/String;)Ljava/util/Optional;
      named parse Lnet/minecraft/network/encryption/PlayerPublicKey;parse(Ljava/lang/String;)Ljava/util/Optional;
    • toProperty

      public com.mojang.authlib.properties.Property toProperty()
      Returns the public key as an authlib Property.
      Returns:
      the public key as an authlib Property
      Mappings:
      Namespace Name Mixin selector
      official a Lbrv;a()Lcom/mojang/authlib/properties/Property;
      intermediary method_43548 Lnet/minecraft/class_7428;method_43548()Lcom/mojang/authlib/properties/Property;
      named toProperty Lnet/minecraft/network/encryption/PlayerPublicKey;toProperty()Lcom/mojang/authlib/properties/Property;
    • isExpired

      public boolean isExpired()
      Returns whether the key is expired and can no longer be used.
      Returns:
      whether the key is expired and can no longer be used
      Mappings:
      Namespace Name Mixin selector
      official b Lbrv;b()Z
      intermediary method_43554 Lnet/minecraft/class_7428;method_43554()Z
      named isExpired Lnet/minecraft/network/encryption/PlayerPublicKey;isExpired()Z
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object object)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      object - the object with which to compare
      Returns:
      true if this object is the same as the object argument; false otherwise.
    • expiresAt

      public Instant expiresAt()
      Returns the value of the expiresAt record component.
      Returns:
      the value of the expiresAt record component
    • keyString

      public String keyString()
      Returns the value of the keyString record component.
      Returns:
      the value of the keyString record component
    • signature

      public String signature()
      Returns the value of the signature record component.
      Returns:
      the value of the signature record component