@aws-amplify/auth
Version:
Auth category of aws-amplify
36 lines (29 loc) • 643 B
text/typescript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { AuthBigInteger, BigInteger } from '../BigInteger';
/**
* @internal
*/
export const calculateA = async ({
a,
g,
N,
}: {
a: AuthBigInteger;
g: AuthBigInteger;
N: AuthBigInteger;
}): Promise<AuthBigInteger> => {
return new Promise((resolve, reject) => {
g.modPow(a, N, (err: unknown, A: AuthBigInteger) => {
if (err) {
reject(err);
return;
}
if (A.mod(N).equals(BigInteger.ZERO)) {
reject(new Error('Illegal parameter. A mod N cannot be 0.'));
return;
}
resolve(A);
});
});
};