Merge pull request #8 from LIT-Protocol:fix/cached-pkp-usage

add pkp public key to session sig requests
This commit is contained in:
Bean 2023-06-15 15:07:33 -04:00 committed by GitHub
commit bb4cd43210
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -147,18 +147,18 @@ function App() {
const { const {
encryptedString, encryptedString,
encryptedSymmetricKey, encryptedSymmetricKey,
authenticatedPkpPublicKey,
} = await handleStoreEncryptionConditionNodes( } = await handleStoreEncryptionConditionNodes(
setStatus, setStatus,
googleCredentialResponse googleCredentialResponse,
registeredPkpPublicKey
); );
setEncryptedString(encryptedString); setEncryptedString(encryptedString);
setEncryptedSymmetricKey(encryptedSymmetricKey); setEncryptedSymmetricKey(encryptedSymmetricKey);
setAuthenticatedPkpPublicKey( setAuthenticatedPkpPublicKey(
authenticatedPkpPublicKey registeredPkpPublicKey
); );
setAuthenticatedPkpEthAddress( setAuthenticatedPkpEthAddress(
publicKeyToAddress(authenticatedPkpPublicKey) publicKeyToAddress(registeredPkpPublicKey)
); );
}} }}
> >
@ -444,11 +444,11 @@ async function pollRequestUntilTerminalState(
async function handleStoreEncryptionConditionNodes( async function handleStoreEncryptionConditionNodes(
setStatusFn: (status: string) => void, setStatusFn: (status: string) => void,
googleCredentialResponse: any googleCredentialResponse: any,
requestedPkpPublicKey: string
): Promise<{ ): Promise<{
encryptedSymmetricKey: Uint8Array; encryptedSymmetricKey: Uint8Array;
encryptedString: Blob; encryptedString: Blob;
authenticatedPkpPublicKey: string;
}> { }> {
setStatusFn("Storing encryption condition with the network..."); setStatusFn("Storing encryption condition with the network...");
@ -466,15 +466,16 @@ async function handleStoreEncryptionConditionNodes(
); );
// get the session sigs // get the session sigs
const { sessionSigs, authenticatedPkpPublicKey } = await getSessionSigs( const { sessionSigs } = await getSessionSigs(
litNodeClient, litNodeClient,
encryptedSymmetricKey, encryptedSymmetricKey,
litNodeClient.generateAuthMethodForGoogleJWT( litNodeClient.generateAuthMethodForGoogleJWT(
googleCredentialResponse.credential googleCredentialResponse.credential
) ),
requestedPkpPublicKey
); );
const pkpEthAddress = publicKeyToAddress(authenticatedPkpPublicKey); const pkpEthAddress = publicKeyToAddress(requestedPkpPublicKey);
const unifiedAccessControlConditions = getUnifiedAccessControlConditions( const unifiedAccessControlConditions = getUnifiedAccessControlConditions(
pkpEthAddress pkpEthAddress
@ -498,20 +499,17 @@ async function handleStoreEncryptionConditionNodes(
return { return {
encryptedSymmetricKey, encryptedSymmetricKey,
encryptedString, encryptedString,
authenticatedPkpPublicKey,
}; };
} }
async function getSessionSigs( async function getSessionSigs(
litNodeClient: LitJsSdk.LitNodeClient, litNodeClient: LitJsSdk.LitNodeClient,
encryptedSymmetricKey: Uint8Array, encryptedSymmetricKey: Uint8Array,
authMethod: LitJsSdk_types.AuthMethod authMethod: LitJsSdk_types.AuthMethod,
requestedPkpPublicKey: string
): Promise<{ ): Promise<{
sessionSigs: LitJsSdk_types.SessionSigsMap; sessionSigs: LitJsSdk_types.SessionSigsMap;
authenticatedPkpPublicKey: string;
}> { }> {
let authenticatedPkpPublicKey: string;
// this will be fired if auth is needed. we can use this to prompt the user to sign in // this will be fired if auth is needed. we can use this to prompt the user to sign in
const authNeededCallback: AuthCallback = async ({ const authNeededCallback: AuthCallback = async ({
resources, resources,
@ -525,6 +523,7 @@ async function getSessionSigs(
// Get AuthSig // Get AuthSig
const { authSig, pkpPublicKey } = await litNodeClient.signSessionKey({ const { authSig, pkpPublicKey } = await litNodeClient.signSessionKey({
pkpPublicKey: requestedPkpPublicKey,
authMethods, authMethods,
statement, statement,
expiration: expiration:
@ -537,8 +536,6 @@ async function getSessionSigs(
pkpPublicKey, pkpPublicKey,
}); });
authenticatedPkpPublicKey = pkpPublicKey;
return authSig; return authSig;
}; };
@ -567,11 +564,9 @@ async function getSessionSigs(
authNeededCallback, authNeededCallback,
}); });
console.log("sessionSigs: ", sessionSigs); console.log("sessionSigs: ", sessionSigs);
console.log("authenticatedPkpPublicKey: ", authenticatedPkpPublicKey!);
return { return {
sessionSigs, sessionSigs
authenticatedPkpPublicKey: authenticatedPkpPublicKey!,
}; };
} }
@ -676,7 +671,8 @@ async function handleRetrieveSymmetricKeyNodes(
encryptedSymmetricKey, encryptedSymmetricKey,
litNodeClient.generateAuthMethodForGoogleJWT( litNodeClient.generateAuthMethodForGoogleJWT(
googleCredentialResponse.credential googleCredentialResponse.credential
) ),
); );
// get the ACC // get the ACC
@ -702,7 +698,7 @@ async function handleRetrieveSymmetricKeyNodes(
} }
function publicKeyToAddress(publicKey: string) { function publicKeyToAddress(publicKey: string) {
return utils.computeAddress(`0x${publicKey}`); return utils.computeAddress(`${publicKey}`);
} }
async function hashBytes({ bytes }: { bytes: Uint8Array }): Promise<string> { async function hashBytes({ bytes }: { bytes: Uint8Array }): Promise<string> {