in src/gowrapper/ckks/keygen.go [113:132]
func lattigo_genRotationKeysForRotations(keygenHandle Handle5, skHandle Handle5, ks *C.int64_t, ksLen uint64) Handle5 {
var keygen *rlwe.KeyGenerator
keygen = getStoredKeyGenerator(keygenHandle)
var sk *rlwe.SecretKey
sk = getStoredSecretKey(skHandle)
rotations := make([]int, ksLen)
size := unsafe.Sizeof(uint64(0))
basePtrIn := uintptr(unsafe.Pointer(ks))
for i := range rotations {
rotations[i] = int(*(*int64)(unsafe.Pointer(basePtrIn + size*uintptr(i))))
}
var rotKeys *rlwe.RotationKeySet
// The second argument determines if conjugation keys are generated or not. This wrapper API does
// not support generating a conjugation key.
rotKeys = (*keygen).GenRotationKeysForRotations(rotations, false, sk)
return marshal.CrossLangObjMap.Add(unsafe.Pointer(rotKeys))
}