Exemple #1
0
        static void EnsureFilePermissionsOnUnixLikeOS(NPath packageRoot)
        {
            // only necessary on unixes
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                return;
            }

            var executablePath = packageRoot.Combine(UncrustifyRelativePathForCurrentPlatform());

            if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                var ret = NativeUnix.GetFileMode(executablePath, out var originalPermission);
                if (ret != 0)
                {
                    throw new Exception($"Unable to get execution permission for `{executablePath}`. Error code: {ret}.\nFormatting with this formatter will not work.\nYou may need to set the permission manually by running `chmod u+x {executablePath}` in a console.");
                }

                // set permission for owner to run
                ret = NativeUnix.SetFileMode(executablePath, originalPermission | NativeUnix.UnixFilePermissions.S_IXUSR);
                if (ret != 0)
                {
                    throw new Exception($"Unable to set execution permission on `{executablePath}`. Error code: {ret}.\nFormatting with this formatter will not work.\nYou may set the permission manually by running `chmod u+x {executablePath}` in a console.");
                }
            }
        }
 internal CK_SESSION_INFO(NativeUnix native)
 {
     slotID        = (uint)native.slotID;
     state         = (uint)native.state;
     flags         = (uint)native.flags;
     ulDeviceError = (uint)native.ulDeviceError;
 }
Exemple #3
0
 internal CK_SLOT_INFO(NativeUnix native)
 {
     flags           = (uint)native.flags;
     hardwareVersion = new CK_VERSION(native.hardwareVersion);
     firmwareVersion = new CK_VERSION(native.firmwareVersion);
     slotDescription = Library.Utf8ToString(native.slotDescription);
     manufacturerID  = Library.Utf8ToString(native.manufacturerID);
 }
 internal CK_INFO(NativeUnix native)
 {
     cryptokiVersion    = new CK_VERSION(native.cryptokiVersion);
     flags              = (uint)native.flags;
     libraryVersion     = native.libraryVersion;
     libraryDescription = Library.Utf8ToString(native.libraryDescription);
     manufacturerID     = Library.Utf8ToString(native.manufacturerID);
 }
 internal Native(CK_MECHANISM mech)
 {
     if (isWindows)
     {
         windows = new NativeWindows(mech);
     }
     else
     {
         unix = new NativeUnix(mech);
     }
 }
        public void Set_Permission_Works([ValueSource(nameof(PermissionScenarios))] NativeUnix.UnixFilePermissions permission)
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                return;
            }

            var path = BaseDir.CreateFile("normal.txt");

            Assert.That(NativeUnix.SetFileMode(path, NativeUnix.UnixFilePermissions.None), Is.EqualTo(0));

            NativeUnix.UnixFilePermissions actual;
            Assert.That(NativeUnix.GetFileMode(path, out actual), Is.EqualTo(0));
            Assert.That(actual, Is.EqualTo(NativeUnix.UnixFilePermissions.None));

            Assert.That(NativeUnix.SetFileMode(path, permission), Is.EqualTo(0));

            Assert.That(NativeUnix.GetFileMode(path, out actual), Is.EqualTo(0));
            Assert.That(actual, Is.EqualTo(permission));
        }
Exemple #7
0
 internal CK_TOKEN_INFO(NativeUnix native)
 {
   firmwareVersion = new CK_VERSION(native.firmwareVersion);
   flags = (uint)native.flags;
   hardwareVersion = new CK_VERSION(native.hardwareVersion);
   label = Library.Utf8ToString(native.label);
   manufacturerID = Library.Utf8ToString(native.manufacturerID);
   model = Library.Utf8ToString(native.model);
   serialNumber = Library.Utf8ToString(native.serialNumber);
   ulFreePrivateMemory = (int)native.ulFreePrivateMemory;
   ulFreePublicMemory = (int)native.ulFreePublicMemory;
   ulMaxPinLen = (int)native.ulMaxPinLen;
   ulMaxRwSessionCount = (int)native.ulMaxRwSessionCount;
   ulMaxSessionCount = (int)native.ulMaxSessionCount;
   ulMinPinLen = (int)native.ulMinPinLen;
   ulRwSessionCount = (int)native.ulRwSessionCount;
   ulSessionCount = (int)native.ulSessionCount;
   ulTotalPrivateMemory = (int)native.ulTotalPrivateMemory;
   ulTotalPublicMemory = (int)native.ulTotalPublicMemory;
   utcTime = Library.Utf8ToString(native.utcTime);
 }
Exemple #8
0
 internal CK_MECHANISM_INFO(NativeUnix native)
 {
   ulMinKeySize = (int)native.ulMaxKeySize;
   ulMaxKeySize = (int)native.ulMaxKeySize;
   flags = (uint)native.flags;
 }
 internal CK_VERSION(NativeUnix native)
 {
   major = native.major;
   minor = native.minor;
 }