Wrong module
This commit is contained in:
parent
0cb5f33af3
commit
013682166c
@ -1,43 +1,44 @@
|
|||||||
/*
|
//We'll handle SRNG through libsodium
|
||||||
* Copyright 2019 Ugljesa Jovanovic
|
///*
|
||||||
*
|
// * Copyright 2019 Ugljesa Jovanovic
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
// *
|
||||||
* you may not use this file except in compliance with the License.
|
// * Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* You may obtain a copy of the License at
|
// * you may not use this file except in compliance with the License.
|
||||||
*
|
// * You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
// *
|
||||||
*
|
// * http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
// *
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
// * Unless required by applicable law or agreed to in writing, software
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// * distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* See the License for the specific language governing permissions and
|
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* limitations under the License.
|
// * See the License for the specific language governing permissions and
|
||||||
*/
|
// * limitations under the License.
|
||||||
|
// */
|
||||||
package com.ionspin.kotlin.crypto
|
//
|
||||||
|
//package com.ionspin.kotlin.crypto
|
||||||
import kotlinx.cinterop.*
|
//
|
||||||
import platform.windows.*
|
//import kotlinx.cinterop.*
|
||||||
|
//import platform.windows.*
|
||||||
/**
|
//
|
||||||
* Created by Ugljesa Jovanovic
|
///**
|
||||||
* ugljesa.jovanovic@ionspin.com
|
// * Created by Ugljesa Jovanovic
|
||||||
* on 21-Sep-2019
|
// * ugljesa.jovanovic@ionspin.com
|
||||||
*/
|
// * on 21-Sep-2019
|
||||||
actual object SRNG {
|
// */
|
||||||
private val advapi by lazy { LoadLibraryA("ADVAPI32.DLL")}
|
//actual object SRNG {
|
||||||
|
// private val advapi by lazy { LoadLibraryA("ADVAPI32.DLL")}
|
||||||
private val advapiRandom by lazy {
|
//
|
||||||
GetProcAddress(advapi, "SystemFunction036")?.reinterpret<CFunction<Function2<CPointer<ByteVar>, ULong, Int>>>() ?: error("Failed getting advapi random")
|
// private val advapiRandom by lazy {
|
||||||
}
|
// GetProcAddress(advapi, "SystemFunction036")?.reinterpret<CFunction<Function2<CPointer<ByteVar>, ULong, Int>>>() ?: error("Failed getting advapi random")
|
||||||
|
// }
|
||||||
@Suppress("EXPERIMENTAL_UNSIGNED_LITERALS")
|
//
|
||||||
actual fun getRandomBytes(amount: Int): UByteArray {
|
// @Suppress("EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||||
memScoped {
|
// actual fun getRandomBytes(amount: Int): UByteArray {
|
||||||
val randArray = allocArray<ByteVar>(amount)
|
// memScoped {
|
||||||
val pointer = randArray.getPointer(this)
|
// val randArray = allocArray<ByteVar>(amount)
|
||||||
val status = advapiRandom(pointer.reinterpret(), amount.convert())
|
// val pointer = randArray.getPointer(this)
|
||||||
return UByteArray(amount) { pointer[it].toUByte() }
|
// val status = advapiRandom(pointer.reinterpret(), amount.convert())
|
||||||
}
|
// return UByteArray(amount) { pointer[it].toUByte() }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//}
|
@ -1,44 +1,43 @@
|
|||||||
// We will rely on libsodium for randomness
|
/*
|
||||||
///*
|
* Copyright 2019 Ugljesa Jovanovic
|
||||||
// * Copyright 2019 Ugljesa Jovanovic
|
*
|
||||||
// *
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// * Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
||||||
// * you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
||||||
// * You may obtain a copy of the License at
|
*
|
||||||
// *
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
// * http://www.apache.org/licenses/LICENSE-2.0
|
*
|
||||||
// *
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
// * Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
// * distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
||||||
// * See the License for the specific language governing permissions and
|
* limitations under the License.
|
||||||
// * limitations under the License.
|
*/
|
||||||
// */
|
|
||||||
//
|
package com.ionspin.kotlin.crypto
|
||||||
//package com.ionspin.kotlin.crypto
|
|
||||||
//
|
import kotlinx.cinterop.*
|
||||||
//import kotlinx.cinterop.*
|
import platform.windows.*
|
||||||
//import platform.windows.*
|
|
||||||
//
|
/**
|
||||||
///**
|
* Created by Ugljesa Jovanovic
|
||||||
// * Created by Ugljesa Jovanovic
|
* ugljesa.jovanovic@ionspin.com
|
||||||
// * ugljesa.jovanovic@ionspin.com
|
* on 21-Sep-2019
|
||||||
// * on 21-Sep-2019
|
*/
|
||||||
// */
|
actual object SRNG {
|
||||||
//actual object SRNG {
|
private val advapi by lazy { LoadLibraryA("ADVAPI32.DLL")}
|
||||||
// private val advapi by lazy { LoadLibraryA("ADVAPI32.DLL")}
|
|
||||||
//
|
private val advapiRandom by lazy {
|
||||||
// private val advapiRandom by lazy {
|
GetProcAddress(advapi, "SystemFunction036")?.reinterpret<CFunction<Function2<CPointer<ByteVar>, ULong, Int>>>() ?: error("Failed getting advapi random")
|
||||||
// GetProcAddress(advapi, "SystemFunction036")?.reinterpret<CFunction<Function2<CPointer<ByteVar>, ULong, Int>>>() ?: error("Failed getting advapi random")
|
}
|
||||||
// }
|
|
||||||
//
|
@Suppress("EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||||
// @Suppress("EXPERIMENTAL_UNSIGNED_LITERALS")
|
actual fun getRandomBytes(amount: Int): UByteArray {
|
||||||
// actual fun getRandomBytes(amount: Int): UByteArray {
|
memScoped {
|
||||||
// memScoped {
|
val randArray = allocArray<ByteVar>(amount)
|
||||||
// val randArray = allocArray<ByteVar>(amount)
|
val pointer = randArray.getPointer(this)
|
||||||
// val pointer = randArray.getPointer(this)
|
val status = advapiRandom(pointer.reinterpret(), amount.convert())
|
||||||
// val status = advapiRandom(pointer.reinterpret(), amount.convert())
|
return UByteArray(amount) { pointer[it].toUByte() }
|
||||||
// return UByteArray(amount) { pointer[it].toUByte() }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
//}
|
|
Loading…
x
Reference in New Issue
Block a user