Skip to content

IntSquareMod

IntSquareMod

Description

Compute (value^2) mod modulus.

Parameters

Name Direction Description
result out Destination for the reduced square
value in Value to square
modulus in Modulus

Usage example (from documentation)

  IntSquareMod(&result, &value, &modulus);

Usage example (Cross-references)

Usage examples (Cross-references)
    }
    
    void IntSquareMod(Int *result, Int *value, Int *modulus) {
        IntModMul(result, value, value, modulus);
    }
                    Int next = IntInit();
    
                    IntSquareMod(&next, &t_power, modulus);
                    IntDeinit(&t_power);
                    t_power = next;
                        Int square = IntInit();
    
                        IntSquareMod(&square, &b, modulus);
                        IntDeinit(&b);
                        b = square;
                    r = next;
    
                    IntSquareMod(&b_sq, &b, modulus);
                    next = IntInit();
                    IntModMul(&next, &t, &b_sq, modulus);
                        Int next = IntInit();
    
                        IntSquareMod(&next, &x, value);
                        IntDeinit(&x);
                        x = next;
    
    bool test_int_square_mod(void) {
        WriteFmt("Testing IntSquareMod\n");
    
        Int value = IntFrom(12345);
        Int result_value = IntInit();
    
        IntSquareMod(&result_value, &value, &mod);
    
        bool result = IntToU64(&result_value) == 94;
    
        bool result = IntModSqrt(&root, &value, &mod);
        IntSquareMod(&check, &root, &mod);
        result = result && (IntCompare(&check, 10) == 0);
Last updated on