Yeah, that's it exactly. Interestingly, the technique was invented by the creators of RSA public key encryption, although they considered it impractical as it required the exchange of too much information back in the 1970s (all of the cards needs to be double-encrypted with separate keys after a XOR-powered shuffle).
It's exactly the sort of thing we want the underlying Saito game engine to handle, because implementing the cryptographic techniques is a huge pain. Right now the underlying engine simplifies the who process to pushing a new deck onto the stack and dealing from it. The development work is reduced to generating the "associative array" object that defines what the cards are.
this.game.queue.push("DEAL\t1\t2\t8");
this.game.queue.push("DEAL\t1\t1\t8");
this.game.queue.push("DECKENCRYPT\t1\t2");
this.game.queue.push("DECKENCRYPT\t1\t1");
this.game.queue.push("DECKXOR\t1\t2");
this.game.queue.push("DECKXOR\t1\t1");
this.game.queue.push("DECK\t1\t"+cardjson);
Thanks for the comment anyway -- and reach out anytime if you have ideas for XMPP integration or thoughts on the project. You can also find us on the Saito dReddit btw: https://apps.saito.network/r/