using ReactNative.Bridge; using System; using System.Collections.Generic; using Windows.ApplicationModel.Core; using Windows.UI.Core; using System.Security.Cryptography; namespace Net.Rhogan.RNSecureRandom { /// /// A module that allows JS to share data. /// class RNSecureRandomModule : NativeModuleBase { /// /// Instantiates the . /// internal RNSecureRandomModule() { } /// /// The name of the native module. /// public override string Name { get { return "RNSecureRandom"; } } [ReactMethod] public void generateSecureRandomAsBase64(int numberOfBytes, IPromise promise) { try { RandomNumberGenerator csprng = RandomNumberGenerator.Create(); byte[] rawByteArray = new byte[numberOfBytes]; csprng.GetBytes(rawByteArray); promise.Resolve(Convert.ToBase64String(rawByteArray)); } catch (Exception ex) { promise.Reject(ex); } } } }