Pack.encodePrivateKeyI(privateKey, secretPolynomial, errorPolynomial, randomnessExtended, Polynomial.SEED * 2); Pack.encodePublicKey(publicKey, T, randomnessExtended, Polynomial.SEED * 2, Parameter.N_I, Parameter.Q_LOGARITHM_I); Pack.encodePrivateKeyIIISize(privateKey, secretPolynomial, errorPolynomial, randomnessExtended, Polynomial.SEED * 2); Pack.encodePublicKey(publicKey, T, randomnessExtended, Polynomial.SEED * 2, Parameter.N_III_SIZE, Parameter.Q_LOGARITHM_III_SIZE); Pack.encodePrivateKeyIIISpeed(privateKey, secretPolynomial, errorPolynomial, randomnessExtended, Polynomial.SEED * 2); Pack.encodePublicKeyIIISpeed(publicKey, T, randomnessExtended, Polynomial.SEED * 2); Pack.packPrivateKey(privateKey, secretPolynomial, errorPolynomial, randomnessExtended, Polynomial.SEED * (k + 1), n, k); Pack.encodePublicKeyIP(publicKey, T, randomnessExtended, Polynomial.SEED * (k + 1)); Pack.encodePublicKeyIIIP(publicKey, T, randomnessExtended, Polynomial.SEED * (k + 1)); Pack.decodePrivateKeyI(seed, secretPolynomial, errorPolynomial, privateKey); Pack.decodePrivateKeyIIISize(seed, secretPolynomial, errorPolynomial, privateKey); Pack.decodePrivateKeyIIISpeed(seed, secretPolynomial, errorPolynomial, privateKey); Pack.encodeSignature(signature, 0, C, 0, Z, n, d); Pack.encodeSignature(signature, 0, C, 0, Z, n, d); Pack.encodeSignatureIIISpeed(signature, 0, C, 0, Z); Pack.encodeSignatureIP(signature, 0, C, 0, Z);