<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __generateSPK(self):
 """ Generate a new PK and sign its public key using the IK, add the timestamp aswell to allow for periodic rotations. """


        key = self.__KeyPair.generate()

        key_serialized = self.__PublicKeyEncoder.encodePublicKey(
            key.pub,
            self.__curve
        )

        signature = self.__XEdDSA(mont_priv = self.__ik.priv).sign(key_serialized)

        self.__spk = {
            "key": key,
            "signature": signature,
            "timestamp": time.time()
        }