Kotlin kmm创建类型为CValuesRef<;的变量;CCFvar>;

Kotlin kmm创建类型为CValuesRef<;的变量;CCFvar>;,kotlin,kmm,Kotlin,Kmm,它总是空的,我需要它有价值 请帮帮我 完整代码 cryptor.getPointer(MemScope()).pointed.value fun encryptOrDecryptData(数据:NSData,密钥:Any,iv:Any):NSData?{ 风险值状态:CCCryptorStatus if(键为NSData | |键为NSString){ //验证ok }否则{ println(“密钥类类型无效(有效:NSData | | NSString)”) 返回空 } 如果(iv为NSDa

它总是空的,我需要它有价值

请帮帮我

完整代码

cryptor.getPointer(MemScope()).pointed.value
fun encryptOrDecryptData(数据:NSData,密钥:Any,iv:Any):NSData?{
风险值状态:CCCryptorStatus
if(键为NSData | |键为NSString){
//验证ok
}否则{
println(“密钥类类型无效(有效:NSData | | NSString)”)
返回空
}
如果(iv为NSData | | iv为NSString){
//验证ok
}否则{
println(“iv类类型无效(有效:NSData | | NSString)”)
返回空
}
var keyData:NSMutableData?
var ivData:NSMutableData?
if(键为NSData){
keyData=key.mutableCopy()是否作为NSMutableData?
}否则{
keyData=(作为NSString的键).dataUsingEncoding(NSUTF8StringEncoding)?.mutableCopy()作为NSMutableData?
}
如果(iv是NSData){
ivData=iv.mutableCopy()作为NSMutableData?
}否则{
ivData=(iv作为NSString).dataUsingEncoding(NSUTF8StringEncoding)?.mutableCopy()作为NSMutableData?
}
var cryptor:CValuesRef=memScoped{cValue()}
状态=CCCryptorCreateWithMode(
op=kCCEncrypt,
模式=kCCModeCTR,
alg=kCalgorithmaes 128,
padding=ccNoPadding,
iv=ivData?字节(),
key=keyData?.bytes(),
keyLength=16,
tweak=null,
长度=0,
numRounds=0,
选项=kCCModeOptionCTR\u BE,
cryptorRef=cryptor)
如果(状态!=kCCSuccess){
println(“错误:CCCryptorCreateWithMode错误:status=“+status”)
返回空
}
var cryptorRef=cryptor.getPointer(MemScope()).pointed.value
if(cryptorRef!=null){
var结果:NSData?=\u运行加密程序(加密,数据)
返回结果
}否则{
println(“错误:cryptorRef==null”)
返回空
}
}
var cryptor: CValuesRef<CCCryptorRefVar> = memScoped { cValue() }
cryptor.getPointer(MemScope()).pointed.value
fun encryptOrDecryptData(data: NSData, key: Any, iv: Any): NSData? {
        var status: CCCryptorStatus

        if (key is NSData || key is NSString) {
            //validate ok
        } else {
            println("key class type invalid (valid: NSData || NSString)")
            return null
        }

        if (iv is NSData || iv is NSString) {
            //validate ok
        } else {
            println("iv class type invalid (valid: NSData || NSString)")
            return null
        }

        var keyData: NSMutableData?
        var ivData: NSMutableData?

        if (key is NSData) {
            keyData = key.mutableCopy() as NSMutableData?
        } else {
            keyData = (key as NSString).dataUsingEncoding(NSUTF8StringEncoding)?.mutableCopy() as NSMutableData?
        }

        if (iv is NSData) {
            ivData = iv.mutableCopy() as NSMutableData?
        } else {
            ivData = (iv as NSString).dataUsingEncoding(NSUTF8StringEncoding)?.mutableCopy() as NSMutableData?
        }

        var cryptor: CValuesRef<CCCryptorRefVar> = memScoped { cValue() }

        status = CCCryptorCreateWithMode(
            op = kCCEncrypt,
            mode = kCCModeCTR,
            alg = kCCAlgorithmAES128,
            padding = ccNoPadding,
            iv = ivData?.bytes(),
            key = keyData?.bytes(),
            keyLength = 16,
            tweak = null,
            tweakLength = 0,
            numRounds = 0,
            options = kCCModeOptionCTR_BE,
            cryptorRef = cryptor)

        if (status != kCCSuccess) {
            println("ERROR: CCCryptorCreateWithMode error: status = " + status)
            return null
        }

        var cryptorRef = cryptor.getPointer(MemScope()).pointed.value

        if (cryptorRef != null) {
            var result: NSData? = _runCryptor(cryptorRef, data)
            return result
        } else {
            println("ERROR: cryptorRef == null")
            return null
        }
    }