Git Product home page Git Product logo

scallion's Introduction

2020 Project Update

Scallion was a hobby project to learn OpenCL and RSA. We are not currently maintaining scallion. It has bitrotted in two important ways:

  1. Tor has moved on to v3 Onion addresses, which scallion does not support. Old v2 addresses will stop working in October of 2021. The new spec uses different cryptographic primitives and is overall more complicated. The trick we use to generate batches of RSA keys on the GPU does not work in the same way for the new ECDSA keys required. It is possible to generate similar (but not compatible) ECDSA keys on the GPU, for Bitcoin address generation. See vanitygen-plus or the older oclvanitygen. For a list of (CPU-based) vanity gen tools for that work for Tor v3 hidden services, see this blog post.
  2. The version of OpenSSL we rely on has been deprecated and is unavailable in most modern OSes. It isn't straightforward to upgrade, as we use some low-level math functions in OpenSSL that are not available in the C# bindings for the newer versions. I personally run Scallion using the nvidia dockerfile, which is based on Ubuntu 16.04 Xenial, which still ships the outdated OpenSSL. This is only an option for Nvidia GPU users, however. You could also try building the outdated OpenSSL library and linking against it directly, or running an older version of your OS from a live USB or VM (with PCI-e passthrough).

With enough attention and effort, it would be possible to overcome both of the challenges given above. We could implement support for the GPU ECDSA key generation algorithm to gain Tor v3 support. We could update OpenSSL and replace the math functions with a different library, or make our own managed code wrapper for the OpenSSL library. However, it would likely be better to add support for v3 onion addresses to a maintained project like vanitygen-plus.

Scallion

Scallion lets you create vanity GPG keys and .onion addresses (for Tor's hidden services) using OpenCL.

Scallion runs on Mono (tested in Arch Linux) and .NET 3.5+ (tested on Windows 7 and Server 2008).

Scallion is currently in beta stage and under active development. Nevertheless, we feel that it is ready for use. Improvements are expected primarily in performance, user interface, and ease of installation, not in the overall algorithm used to generate keys.

Scallion is available under the MIT license. If you use code from this project in your own projects, we'd appreciate hearing about it at [email protected].

FAQ

Here are some frequently asked questions and their answers:

  • Why generate GPG keys?

    Scallion was used to find collisions for every 32bit key id in the Web of Trust's strong set demonstrating how insecure 32bit key ids are. There was/is a talk at DEFCON (video) and additional info can be found at https://evil32.com/.

  • What are valid characters?

    Tor .onion addresses use Base32, consisting of all letters and the digits 2 through 7, inclusive. They are case-insensitive.

    GPG fingerprints use hexadecimal, consisting of the digits 0-9 and the letters A-F.

  • Can you use Bitcoin ASICs (e.g. Jalapeno, KnC) to accelerate this process?

    Sadly, no. While the process Scallion uses is conceptually similar (increment a nonce and check the hash), the details are different (SHA-1 vs double SHA-256 for Bitcoin). Furthermore, Bitcoin ASICs are as fast as they are because they are extremely tailored to Bitcoin mining applications. For example, here's the datasheet for the CoinCraft A-1, an ASIC that never came out, but is probably indicitive of the general approach. The microcontroller sends work in the form of the final 128-bits of a Bitcoin block, the hash midstate of the previous bits, a target difficulty, and the maximum nonce to try. The ASIC chooses the location to insert the nonce, and it chooses what blocks meet the hash. Scallion has to insert the nonce in a different location, and it checks for a pattern match rather than just "lower than XXXX".

  • How can you use multiple devices?

    Run multiple Scallion instances. 😄 Scallion searches are probabilistic, so you won't be repeating work with the second device. True multi-device support wouldn't be too difficult, but it also wouldn't add much. I've run several scallion instances in tmux or screen with great success. You'll just need to manually abort all the jobs when one finds a pattern (or write a shell script to monitor the output file and kill them all when it sees results).

Dependencies

  • OpenCL and relevant drivers installed and configured. Refer to your distribution's documentation.
  • OpenSSL. For Windows, the prebuilt x86 DLLs are included
  • On windows only, VC++ Redistributable 2008

Binary Download

Just want the latest binary version? Grab it here.

Build Linux

Prerequisites

  • Get the latest mono for your linux distribution:

    http://www.mono-project.com/download/

  • Install Common dependencies:

    sudo apt-get update
    sudo apt-get install libssl-dev mono-devel
    
  • AMD/OpenSource build sudo apt-get install ocl-icd-opencl-dev

  • Nvidia build sudo apt-get install nvidia-opencl-dev nvidia-opencl-icd

  • Finally msbuild scallion.sln

Docker Linux (nvidia GPUs only)

  1. Have the nvidia-docker container runtime

  2. Build the container:

    docker build -t scallion -f Dockerfile.nvidia .
    
  3. Run:

    docker run --runtime=nvidia -ti --rm scallion -l
    

    screenshot of expected output

Build Windows

  1. Open 'scallion.sln' in VS Express for Desktop 2012
  2. Build the solution, I did everything in debug mode.

Usage

Restarting Scallion during a search will not lose "progress". It is a probabilistic search and Scallion does not make "progress"

List devices

$ mono scallion/bin/Debug/scallion.exe -l

Generate a hash

$ mono scallion/bin/Debug/scallion.exe -d 0 prefix
Cooking up some delicious scallions...
Using kernel optimized from file kernel.cl (Optimized4)
Using work group size 128
Compiling kernel... done.
Testing SHA1 hash...
CPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
GPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
Looks good!
LoopIteration:40  HashCount:671.09MH  Speed:9.5MH/s  Runtime:00:01:10  Predicted:00:00:56  Found new key! Found 1 unique keys.
<XmlMatchOutput>
  <GeneratedDate>2014-08-05T07:14:50.329955Z</GeneratedDate>
  <Hash>prefix64kxpwmzdz.onion</Hash>
  <PrivateKey>-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCmYmTnwGOCpsPOqvs5mZQbIM1TTqOHK1r6zGvpk61ZaT7z2BCE
FPvdTdkZ4tQ3/95ufjhPx7EVDjeJ/JUbT0QAW/YflzUfFJuBli0J2eUJzhhiHpC/
1d3rb6Uhnwvv3xSnfG8m7LeI/Ao3FLtyZFgGZPwsw3BZYyJn3sD1mJIJrQIEB/ZP
ZwKBgCTUQTR4zcz65zSOfo95l3YetVhfmApYcQQd8HTxgTqEsjr00XzW799ioIWt
vaKMCtJlkWLz4N1EqflOH3WnXsEkNA5AVFe1FTirijuaH7e46fuaPJWhaSq1qERT
eQT1jY2jytnsJT0VR7e2F83FKINjLeccnkkiVknsjrOPrzkXAkEA0Ky+vQdEj64e
iP4Rxc1NreB7oKor40+w7XSA0hyLA3JQjaHcseg/bqYxPZ5J4JkCNmjavGdM1v6E
OsVVaMWQ7QJBAMweWSWtLp6rVOvTcjZg+l5+D2NH+KbhHbNLBcSDIvHNmD9RzGM1
Xvt+rR0FA0wUDelcdJt0R29v2t19k2IBA8ECQFMDRoOQ+GBSoDUs7PUWdcXtM7Nt
QW350QEJ1hBJkG2SqyNJuepH4PIktjfytgcwQi9w7iFafyxcAAEYgj4HZw8CQAUI
3xXEA2yZf9/wYax6/Gm67cpKc3sgKVczFxsHhzEml6hi5u0FG7aNs7jQTRMW0aVF
P8Ecx3l7iZ6TeakqGhcCQGdhCaEb7bybAmwQ520omqfHWSte2Wyh+sWZXNy49EBg
d1mBig/w54sOBCUHjfkO9gyiANP/uBbR6k/bnmF4dMc=
-----END RSA PRIVATE KEY-----
</PrivateKey>
  <PublicModulusBytes>pmJk58BjgqbDzqr7OZmUGyDNU06jhyta+sxr6ZOtWWk+89gQhBT73U3ZGeLUN//ebn44T8exFQ43ifyVG09EAFv2H5c1HxSbgZYtCdnlCc4YYh6Qv9Xd62+lIZ8L798Up3xvJuy3iPwKNxS7cmRYBmT8LMNwWWMiZ97A9ZiSCa0=</PublicModulusBytes>
  <PublicExponentBytes>B/ZPZw==</PublicExponentBytes>
</XmlMatchOutput>
init: 491ms / 1 (491ms, 2.04/s)
generate key: 1193ms / 6 (198.83ms, 5.03/s)
cpu precompute: 10ms / 6 (1.67ms, 600/s)
total without init: 70640ms / 1 (70640ms, 0.01/s)
set buffers: 0ms / 40 (0ms, 0/s)
write buffers: 3ms / 40 (0.08ms, 13333.33/s)
read results: 67442ms / 40 (1686.05ms, 0.59/s)
check results: 185ms / 40 (4.63ms, 216.22/s)

9.50 million hashes per second

Stopping the GPU and shutting down...

Multipattern Hashing

Scallion supports finding one or more of multiple patterns through a primitive regex syntax. Only character classes (ex. [abcd]) are supported. The . character represents any character. Onion addresses are always 16 characters long and GPG fingerprints are always 40 characters. You can find a suffix by putting $ at the end of the match (ex. DEAD$). Finally, the pipe syntax (ex. pattern1|pattern2) can be used to find multiple patterns. Searching for multible patterns (within reason) will NOT produce a significant decrease in speed. Many regexps will produce a single pattern on the GPU and result in no speed reduction.

Some use cases with examples:

  • Generate a prefix followed by a number for better readability:

      mono scallion.exe prefix[234567]
    
  • Search for several patterns at once (n.b. -c causes scallion to continue generating even once it gets a hit)

      mono scallion.exe -c prefix scallion hashes
      mono scallion.exe -c "prefix|scallion|hashes"
    
  • Search for the suffix "badbeef"

      mono scallion.exe .........badbeef
      mono scallion.exe --gpg badbeef$ # Generate GPG key
    
  • Complicated self explanatory example:

      mono scallion.exe "suffixa$|suffixb$|prefixa|prefixb|a.suffix$|a.test.$"
    

How does Scallion work?

At a high level Scallion works as follows:

  1. Generate RSA key using OpenSSL on the CPU
  2. Send the key to the GPU
  3. Increase the key's public exponent
  4. Hash the key
  5. If the hashed key is not a partial collision go to step 3
  6. If the key does not pass the sanity checks recommended by PKCS #1 v2.1 (checked on the CPU) go to step 3
  7. Brand new key with partial collision!

The basic algorithm is described above. Speed / performance is the result of massive parallelization, both on the GPU and the CPU.

Speed / Performance

It is important to realize that Scallion preforms a probabilistic search. Actual times may very significantly from predicated

The inital RSA key generation is done the CPU. An ivybridge i7 can generate 51 keys per second using a single core. Each key can provide 1 gigahash worth of exponents to mine and a decent CPU can keep up with several GPUs as it is currently implemented.

SHA1 hashing is done on the GPU. The hashrates for several GPUs we have tested are below (grouped by manufacturer and sorted by power):

GPU Speed
Intel i7-2620M 9.9 MH/s
Intel i5-5200U 118 MH/s
NVIDIA GT 520 38.7 MH/s
NVIDIA Quadro K2000M 90 MH/s
NVIDIA GTS 250 128 MH/s
NVIDIA GTS 450 144 MH/s
NVIDIA GTX 670 480 MH/s
NVIDIA GTX 970 2350 MH/s
NVIDIA GTX 980 3260 MH/s
NVIDIA GTX 1050 (M) 1400 MH/s
NVIDIA GTX 1070 4140 MH/s
NVIDIA GTX 1070 TI 5100 MH/s
NVIDIA GTX TITAN X 4412 MH/s
NVIDIA GTX 1080 5760 MH/s
NVIDIA Tesla V100 11646 MH/s
AMD A8-7600 APU 120 MH/s
AMD Radeon HD5770 520 MH/s
AMD Radeon HD6850 600 MH/s
AMD Radeon RX 460 840 MH/s
AMD Radeon RX 470 957 MH/s
AMD Radeon R9 380X 2058 MH/s
AMD FirePro W9100 2566 MH/s
AMD Radeon RX 480 2700 MH/s
AMD Radeon RX 580 3180 MH/s
AMD Radeon R9 Nano 3325 MH/s
AMD Vega Frontier Edition 7119 MH/s

MH/s = million hashes per second

Its worth noting that Intel has released OpenCL drivers for its processors and short collisions can be found on the CPU.

To calculate the number of seconds required for a given partial collision (on average), use the formula:

Type Estimated time
GPG Key 2^(4*length-1) / hashspeed
.onion Address 2^(5*length-1) / hashspeed

For example on my nVidia Quadro K2000M, I see around 90 MH/s. With those speed I can generate an eight character .onion prefix in about 1h 41m, 2^(5*8-1)/90 million = 101 minutes.

Workgroup Size

Scallion will use your devices reported preferred work group size by default. This is a reasonable default but experimenting with the workgroup may increase performance.

Security

The keys generated by Scallion are quite similar to those generated by shallot. They have unusually large public exponents, but they are put through the full set of sanity checks recommended by PKCS #1 v2.1 via openssl's RSA_check_key function. Scallion supports several RSA key sizes, with optimized kernels for 1024b, 2048b, and 4096b. Other key sizes may work, but have not been tested.

Thanks / References

Donations

Feel free to direct donations to the Bitcoin address: 1FxQcu6vhpwsqcTjPsjK43CZ9vjnuk4Hmo

scallion's People

Contributors

anonamouse avatar appliedellipsis avatar bauerj avatar beanieboi avatar betrisey avatar branan avatar freethenation avatar ignisf avatar ipepe avatar justinnoah avatar jwilk avatar krisives avatar lachesis avatar lilyanatia avatar maxxor avatar minastyuru avatar nexus166 avatar richardklafter avatar savely-krasovsky avatar ssg avatar sunknudsen avatar ukd1 avatar va6dah avatar vedranmiletic avatar zero10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scallion's Issues

Default does not do a prefix search

Running scallion 1.0 with:

scallion.exe -d 0 cat

One would expect to get an answer that starts with cat, however the result is:

LoopIteration:73  HashCount:1224.74MH  Speed:39.4MH/s  Runtime:00:00:31  Predicted:00:00:00  CPU checking hash: lgoxjv3gi4zhx34c
CPU checking hash: w3yfjrnbuelvxzan
CPU checking hash: hkrl3zcyouiwls73
CPU checking hash: jwzdtulwjz42zwt4
CPU checking hash: qmtwjeppkbodhgts
CPU checking hash: v4rw3tlywkk3fazd
CPU checking hash: kgyal7sz5ifey4wj
CPU checking hash: 7hmzdelbrdglgzyr
CPU checking hash: wnvdq54myok4kccd
CPU checking hash: ihtjd67yzqxtib3z
CPU checking hash: qvr7ju6ohz4cy5fa
CPU checking hash: 4ouosay2bzswucat

Ding!! Delicions scallions for you!!

Exponent: 2056315159
Address/Hash: 4ouosay2bzswucat.onion

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCxnzJVw4818vkHHYl74j9bBeCXa5cb18g/1lhd/oxEbpnTcTjm
Ls/P/lR3O3r79QeQMHR4BsG/2lCHRujb/joThZ627E/q36BRYcvGDD8e1ugJB9E9
6lbl/xM0Dd11DuVB9i7U2OvgSpPY32hJ9S9EifUcjNDNX8bdINRHfSd8HQIEepDh
FwKBgE5854r5AsL2DVoNuRbis9uhDWDO/zI7zjcCQ9WggBlHd1MLzCUcaH8P4PYp
gJOg6Ed2b5ODM3tgd7IwzFZKu1LZpNy4I3yXtjgOHhjX9uKolOCWwZN4Zg+p+yWE
m87KoBIoqzQV9HwIxGtcMC3IG8HrJZiwsBSDzScwLwNzIL4lAkEA6OA76uVTxvIv
eE7zmeTA0X08/BYrqN3i1axYGbO2zt5WpoI5XEkz28pXCuzKnOl/iOySP13zs8PN
nUEC081CIwJBAMNCY+iyA4p358RCsxL3RXAmmbAfgnLz5e5funtD7bZ4RjqegUDg
nEla7mKo1n14Hc6LEqJQf/zjxPTSsj9IjL8CQFUOKOtUDd30az9EKmZEG0JV1cTp
U3d5wwLLnYppcn1woPgo8XHWt0y9Lqbzv/QEsFQCmvHiuq8OqNBfckHdc0sCQEj/
BRzOmCo4wDiGGgBXyoe0jhi9X/+6S3Oek0VDMWEH8uEdxBEw708uRlv4C4ZcMxm5
LZ/gELtFTWUIrDr7IdUCQEhSJJJllQyaxX++mGcbI19m6BigLfwKUtFlpd1n3HJ2
cieO+E7drODw+3c2CYwxkHZBS9r7uZOo1R9fpwDoGVs=
-----END RSA PRIVATE KEY-----

scallion for windows 7

Downloaded scallion-gpg and
Open 'scallion.sln' in VS Express for Desktop 2012 according with your instruction.

printscreen

Please help me.

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

Trying to get this to run on my system, I always get this error. I've tried using different WorkGroupSizes on commandline, but makes no difference.

Using CPU (-d=2) works, but is slow (obviously).

C:\Users\martin\Downloads\scallion-master\scallion-master\scallion\bin\Debug>scallion.exe -l
Id:0 Name:ATI RV770
PreferredGroupSizeMultiple:64 ComputeUnits:10 ClockFrequency:550
MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:134217728

Id:1 Name:ATI RV770
PreferredGroupSizeMultiple:64 ComputeUnits:10 ClockFrequency:550
MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:134217728

Id:2 Name:Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
PreferredGroupSizeMultiple:1 ComputeUnits:8 ClockFrequency:1596
MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:1073741824

C:\Users\martin\Downloads\scallion-master\scallion-master\scallion\bin\Debug>scallion.exe ^test
Cooking up some delicions scallions...
Putting 1 patterns into 1 buckets.
Using kernel optimized from file kernel.cl (Optimized4_9)
Using work group size 64
Compiling kernel...
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at OpenTK.Compute.CL10.CL.Core.GetProgramBuildInfo(IntPtr program, IntPtr device, ProgramBuildInfo param_name, IntPtr param_value_size, IntPtr param_value, IntPtr* param_value_size_ret)
at OpenTK.Compute.CL10.CL.GetProgramBuildInfo(IntPtr program, IntPtr device, ProgramBuildInfo param_name, IntPtr param_value_size, IntPtr param_value, IntPtr* param_value_size_ret) in c:\Users\martin\Downloads\scallion-master\scallion-master\opentk\Source\OpenTK\Compute\CL10\CL.cs:line 10853
at scallion.CLContext.CreateAndCompileProgram(String source) in c:\Users\martin\Downloads\scallion-master\scallion-master\scallion\CLContext.cs:line 41
at scallion.CLRuntime.Run(ProgramParameters parms) in c:\Users\martin\Downloads\scallion-master\scallion-master\scallion\CLRuntime.cs:line 319
at scallion.Program.Main(String[] args) in c:\Users\martin\Downloads\scallion-master\scallion-master\scallion\Program.cs:line 191

C:\Users\martin\Downloads\scallion-master\scallion-master\scallion\bin\Debug>

Needed >18 hours instead of 7 hours. Bug?

CPU: Intel Core i7-3770k.
GPU: nVidia EVGA GTX 680 Classified

I bruteforced a 9 character long prefix.
It should take around 7 hours. It really needed 18 hours and 51 minutes.

Why so long? Bug?

init: 464ms / 1 (464ms, 2,16/s)
generate key: 1540738ms / 44969 (34,26ms, 29,19/s)
cpu precompute: 1740ms / 44969 (0,04ms, 25844,25/s)
total without init: 67914829ms / 1 (67914829ms, 0/s)
set buffers: 18121ms / 2787744 (0,01ms, -83175,5/s)
write buffers: 78186ms / 2787744 (0,03ms, -19277,41/s)
read results: 67257445ms / 2787744 (24,13ms, -22,41/s)
check results: 6585ms / 2787744 (0ms, -228887,36/s)

688,67 million hashes per second

LoopIteration:2787732 HashCount:46770381,91MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787733 HashCount:46770398,69MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787734 HashCount:46770415,47MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787735 HashCount:46770432,25MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787736 HashCount:46770449,02MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787737 HashCount:46770465,80MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787738 HashCount:46770482,58MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787739 HashCount:46770499,35MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787740 HashCount:46770516,13MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787741 HashCount:46770532,91MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787742 HashCount:46770549,69MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787743 HashCount:46770566,46MH Speed:688,7MH/s Runtime:18:51:5
LoopIteration:2787744 HashCount:46770583,24MH Speed:688,7MH/s Runtime:18:51:5
4 Predicted:07:05:45 Found new key! Found 1 unique keys.

Calculation

2^(5*(9 characters)-1)/(688000000 Hashes per second)/(60 seconds)/(60 minutes)
~ 7,1 hours

Error calling EnqueueNDRangeKernel: OutOfResources

Hello,

I'm running this command: c:\scallion-v0.9\scallion.exe -d 0 test
But after two seconds i get this error message;

Cooking up some delicions scallions...
Using kernel optimized4_9 from file kernel.cl (Optimized4_9)

Onverwerkte uitzondering: System.InvalidOperationException: Error calling EnqueueNDRangeKernel: OutOfResources
bij scallion.CLKernel.EnqueueNDRangeKernel(Int32 globalWorkSize, Int32 localWorkSize)
bij scallion.CLRuntime.Run(Int32 deviceId, Int32 workGroupSize, Int32 workSize,
Int32 numThreadsCreateWork, KernelType kernelt, Int32 keysize, String prefix, String suffix)
bij scallion.Program.Main(String[] args)

My OS: Windows 7 64-bit
My graphics card: Id:0 Name:GeForce 8800 GT (PreferredGroupSizeMultiple:32 ComputeUnits:14 ClockFrequency:1500)

Can't build in Ubuntu 12

Everytime I run mono scallion.exe I get:

Unhandled Exception: System.InvalidOperationException: Error calling CreateContext
at scallion.CLContext..ctor (IntPtr deviceId) [0x00000] in :0
at scallion.Program.getPreferredWorkGroupSize (IntPtr deviceId) [0x00000] in :0
at scallion.Program.ListDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: Error calling CreateContext
at scallion.CLContext..ctor (IntPtr deviceId) [0x00000] in :0
at scallion.Program.getPreferredWorkGroupSize (IntPtr deviceId) [0x00000] in :0
at scallion.Program.ListDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0

Any recommendations on how to fix? Thanks.

Problems with prediction time.

A) When I try to find a lot of prefixes the prediction time is so big that ends in an error, not allowing me find large amounts of prefixes, is there any way to disable the prediction of time?

aaa

B) Is not possible take longer to find test[234567]test that test4test

2

Compile Issue - ubuntu

I can't pass this warning! there were a lot of more warnings and errors that I figured out to solve, but this is not going away.
my system is:
Linux shayan-desktop 2.6.32-44-generic-pae #98-Ubuntu SMP Mon Sep 24 17:47:51 UTC 2012 i686 GNU/Linux

And this is the output:

XBuild Engine Version 2.4.4.0
Mono, Version 2.4.4.0
Copyright (C) Marek Sieradzki 2005-2008, Novell 2008-2009.
/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln: warning : Don't know how to handle GlobalSection MonoDevelopProperties, Ignoring.

Build started 16/10/2012 2:56:18 PM.


Project "/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln" (default target(s)):

Target ValidateSolutionConfiguration:
    Building solution configuration "Debug|Any CPU".

Target Build:
    Project "/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj" (default target(s)):

        Target _ValidateEssentialProperties:

        Target PrepareForBuild:
            Configuration: Debug Platform: AnyCPU

        Target SplitProjectReferencesByExistent:

        Target ResolveProjectReferences:

        Target ResolveAssemblyReferences:

        Target CopyFilesMarkedCopyLocal:

        Target AssignTargetPaths:

        Target SplitResourcesByCulture:

        Target CreateManifestResourceNames:

        Target CopyNonResxEmbeddedResources:

        Target GenerateResources:
            Compiling resource file 'Properties/Resources.resx' into 'obj/Debug/OpenTK.Properties.Resources.resources'

        Target GenerateSatelliteAssemblies:
        Skipping target "GenerateSatelliteAssemblies" because its outputs are up-to-date.

        Target CoreCompile:
            Tool /usr/bin/gmcs execution started with arguments: /noconfig /debug:full /delaysign- /debug+ /keyfile:../../OpenTK.snk /optimize- /out:obj/Debug/OpenTK.dll /resource:obj/Debug/OpenTK.Properties.Resources.resources /resource:obj/Debug/OpenTK.OpenTK.dll.config DisplayDevice.cs DisplayIndex.cs Graphics/GraphicsModeComparer.cs Input/IGamePadDriver.cs Input/IInputDriver2.cs Input/IKeyboardDriver2.cs Input/IMouseDriver2.cs Platform/DisplayDeviceBase.cs Platform/Windows/WinInputBase.cs WindowBorder.cs ContextHandle.cs WindowState.cs IGameWindow.cs GameWindowFlags.cs KeyPressEventArgs.cs AutoGeneratedAttribute.cs NativeWindow.cs DisplayResolution.cs BindingsBase.cs Toolkit.cs FrameEventArgs.cs BlittableValueType.cs GameWindow.cs Minimal.cs Configuration.cs Exceptions.cs INativeWindow.cs Properties/AssemblyInfo.cs Platform/IDisplayDeviceDriver.cs Platform/IWindowInfo.cs Platform/EmbeddedGraphicsContext.cs Platform/PlatformException.cs Platform/IPlatformFactory.cs Platform/Factory.cs Platform/Utilities.cs Platform/INativeGLWindow.cs Platform/DesktopGraphicsContext.cs Platform/Dummy/DummyWindowInfo.cs Platform/Dummy/DummyGLContext.cs Platform/Egl/EglX11PlatformFactory.cs Platform/Egl/EglWinPlatformFactory.cs Platform/Egl/EglGraphicsMode.cs Platform/Egl/EglWindowInfo.cs Platform/Egl/Egl.cs Platform/Egl/EglContext.cs Platform/Egl/EglMacPlatformFactory.cs Platform/MacOS/EventInfo.cs Platform/MacOS/MacOSGraphicsMode.cs Platform/MacOS/MacOSFactory.cs Platform/MacOS/MacOSException.cs Platform/MacOS/MacOSKeyMap.cs Platform/MacOS/CarbonGLNative.cs Platform/MacOS/Application.cs Platform/MacOS/AglContext.cs Platform/MacOS/QuartzDisplayDeviceDriver.cs Platform/MacOS/CarbonInput.cs Platform/MacOS/CarbonWindowInfo.cs Platform/MacOS/CarbonBindings/CarbonAPI.cs Platform/MacOS/CarbonBindings/SpeechChannel.cs Platform/MacOS/CarbonBindings/QuartzDisplayServicesAPI.cs Platform/MacOS/CarbonBindings/MacOSKeys.cs Platform/MacOS/CarbonBindings/Agl.cs Platform/MacOS/CarbonBindings/CoreFoundation.cs Platform/Windows/WinRawKeyboard.cs Platform/Windows/WinFactory.cs Platform/Windows/WinRawInput.cs Platform/Windows/WinRawMouse.cs Platform/Windows/WinDisplayDevice.cs Platform/Windows/API.cs Platform/Windows/WinKeyMap.cs Platform/Windows/WMInput.cs Platform/Windows/WinGLNative.cs Platform/Windows/WinWindowInfo.cs Platform/Windows/WinGLContext.cs Platform/Windows/WinMMJoystick.cs Platform/Windows/WglHelper.cs Platform/Windows/WinGraphicsMode.cs Platform/Windows/Bindings/Wgl.cs Platform/Windows/Bindings/WglDelegates.cs Platform/Windows/Bindings/WglCore.cs Platform/Windows/Bindings/WglEnums.cs Platform/X11/X11WindowInfo.cs Platform/X11/X11Joystick.cs Platform/X11/Functions.cs Platform/X11/GlxHelper.cs Platform/X11/API.cs Platform/X11/X11DisplayDevice.cs Platform/X11/X11GraphicsMode.cs Platform/X11/X11GLNative.cs Platform/X11/X11KeyMap.cs Platform/X11/X11GLContext.cs Platform/X11/Structs.cs Platform/X11/X11Input.cs Platform/X11/X11Factory.cs Platform/X11/Bindings/Glx.cs Graphics/IGraphicsMode.cs Graphics/GraphicsExceptions.cs Graphics/GraphicsErrorException.cs Graphics/Color4.cs Graphics/GraphicsContextVersion.cs Graphics/IGraphicsContext.cs Graphics/GraphicsMode.cs Graphics/GraphicsModeException.cs Graphics/GraphicsContextFlags.cs Graphics/GraphicsContextMissingException.cs Graphics/GraphicsContext.cs Graphics/GraphicsContextException.cs Graphics/GraphicsContextBase.cs Graphics/GraphicsBindingsBase.cs Graphics/ColorFormat.cs Graphics/OpenGL/GLDelegates.cs Graphics/OpenGL/GLHelper.cs Graphics/OpenGL/GLEnums.cs Graphics/OpenGL/GLCore.cs Graphics/OpenGL/GL.cs Graphics/OpenGL/ErrorHelper.cs Graphics/ES10/ES.cs Graphics/ES10/Enums.cs Graphics/ES10/ErrorHelper.cs Graphics/ES10/Helper.cs Graphics/ES10/Delegates.cs Graphics/ES10/Core.cs Graphics/ES11/ES.cs Graphics/ES11/Enums.cs Graphics/ES11/ErrorHelper.cs Graphics/ES11/Helper.cs Graphics/ES11/Delegates.cs Graphics/ES11/Core.cs Graphics/ES20/ES.cs Graphics/ES20/Enums.cs Graphics/ES20/ErrorHelper.cs Graphics/ES20/Helper.cs Graphics/ES20/Delegates.cs Graphics/ES20/Core.cs Input/Keyboard.cs Input/GamePad.cs Input/MouseDevice.cs Input/Key.cs Input/IJoystickDriver.cs Input/IMouseDriver.cs Input/IInputDriver.cs Input/KeyboardDevice.cs Input/KeyboardState.cs Input/MouseButton.cs Input/JoystickDevice.cs Input/IKeyboardDriver.cs Input/KeyboardKeyEventArgs.cs Input/Mouse.cs Input/MouseState.cs Input/GamePadState.cs Input/IInputDevice.cs Math/Quaternion.cs Math/Matrix3d.cs Math/Vector4.cs Math/BezierCurve.cs Math/Vector3.cs Math/Functions.cs Math/Matrix4d.cs Math/Vector2d.cs Math/Vector2h.cs Math/Vector3h.cs Math/Point.cs Math/Box2.cs Math/Matrix4.cs Math/Half.cs Math/Vector4d.cs Math/Rectangle.cs Math/Vector2.cs Math/BezierCurveQuadric.cs Math/MathHelper.cs Math/Quaterniond.cs Math/Vector4h.cs Math/Size.cs Math/Vector3d.cs Math/BezierCurveCubic.cs Compute/Memory.cs Compute/Device.cs Compute/Platform.cs Compute/Sampler.cs Compute/Kernel.cs Compute/Profiler.cs Compute/Program.cs Compute/Enums.cs Compute/CommandQueue.cs Compute/CLHelper.cs Compute/Event.cs Compute/Structs.cs Compute/Configuration.cs Compute/ComputeContext.cs Compute/CL10/Enums.cs Compute/CL10/ErrorHelper.cs Compute/CL10/Delegates.cs Compute/CL10/Core.cs Compute/CL10/CLHelper.cs Compute/CL10/CL.cs Compute/CL10/ImageFormat.cs Audio/AudioDeviceException.cs Audio/AudioContextException.cs Audio/AudioValueException.cs Audio/AudioException.cs Audio/AudioDeviceEnumerator.cs Audio/AudioDeviceErrorChecker.cs Audio/AudioContext.cs Audio/AudioCapture.cs Audio/OpenAL/Alc/AlcEnums.cs Audio/OpenAL/Alc/Alc.cs Audio/OpenAL/AL/EffectsExtensionPresets.cs Audio/OpenAL/AL/EffectsExtensionEnums.cs Audio/OpenAL/AL/XRamExtension.cs Audio/OpenAL/AL/EffectsExtension.cs Audio/OpenAL/AL/AL.cs Audio/OpenAL/AL/ALEnums.cs Properties/Resources.Designer.cs Platform/X11/X11Keyboard.cs Platform/X11/X11Mouse.cs Input/ButtonState.cs Platform/X11/XI2Mouse.cs Platform/MacOS/HIDInput.cs IntPtrEqualityComparer.cs /target:library /unsafe+ /define:TRACE;DEBUG;EXPERIMENTAL /doc:OpenTK.xml /reference:/usr/lib/mono/2.0/System.dll /reference:/usr/lib/mono/2.0/System.Data.dll /reference:/usr/lib/mono/2.0/System.Drawing.dll /reference:/usr/lib/mono/2.0/System.Xml.dll /warn:4

DisplayDevice.cs(79): warning CS1030: #warning: "Consolidate current resolution with bounds? Can they fall out of sync right now?"' Platform/Windows/WinGLNative.cs(579): warning CS1030: #warning:"This seems to resize one of the 'large' icons, rather than using a small icon directly (multi-icon files). Investigate!"'
Platform/Windows/WinGLContext.cs(95): warning CS1030: #warning: "This is not entirely correct: Embedded is not a valid flag! We need to add a GetARBContextFlags(GraphicsContextFlags) method."' Platform/Windows/WinMMJoystick.cs(118): warning CS1030: #warning:"Implement joystick name detection for WinMM."'
Platform/X11/X11GLContext.cs(123): warning CS1030: #warning: "This is not entirely correct: Embedded is not a valid flag! We need to add a GetARBContextFlags(GraphicsContextFlags) method."' Input/KeyboardState.cs(45,26): error CS0106: The modifierunsafe' is not valid for this item
Input/MouseState.cs(45,26): error CS0106: The modifier `unsafe' is not valid for this item
Task "Csc" execution -- FAILED
Done building target "CoreCompile" in project "/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj".-- FAILED

        Target _GetCompileOutputsForClean:

        Target _RecordCleanFile:

    Done building project "/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj".-- FAILED

    Project "/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/openssl.csproj" (default target(s)):

        Target _ValidateEssentialProperties:

        Target PrepareForBuild:
            Configuration: Debug Platform: AnyCPU

        Target SplitProjectReferencesByExistent:

        Target ResolveProjectReferences:

        Target ResolveAssemblyReferences:

        Target CopyFilesMarkedCopyLocal:

        Target AssignTargetPaths:

        Target SplitResourcesByCulture:

        Target CreateManifestResourceNames:

        Target CopyNonResxEmbeddedResources:

        Target GenerateResources:

        Target GenerateSatelliteAssemblies:
        Skipping target "GenerateSatelliteAssemblies" because its outputs are up-to-date.

        Target CoreCompile:
        Skipping target "CoreCompile" because its outputs are up-to-date.

        Target GetCopyToOutputDirectoryItems:

        Target _CopyDeployFilesToOutputDirectoryAlways:
            Copying file from '/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/openssl.dll.config' to '/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/bin/Debug/openssl.dll.config'

        Target _CopyDeployFilesToOutputDirectoryPreserveNewest:
        Skipping target "_CopyDeployFilesToOutputDirectoryPreserveNewest" because its outputs are up-to-date.

        Target DeployOutputFiles:

        Target _GetCompileOutputsForClean:

        Target _RecordCleanFile:

    Done building project "/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/openssl.csproj".

    Project "/home/shayan/files/lachesis-scallion-5c031ae/scallion/scallion.csproj" (default target(s)):

        Target _ValidateEssentialProperties:

        Target PrepareForBuild:
            Configuration: Debug Platform: AnyCPU

        Target AssignProjectConfigurations:

        Target SplitProjectReferencesByExistent:

        Target ResolveProjectReferences:
            Project "/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/openssl.csproj" (GetTargetPath target(s)):

            Done building project "/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/openssl.csproj".

            Project "/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj" (GetTargetPath target(s)):

            Done building project "/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj".


        Target ResolveAssemblyReferences:

        Target CopyFilesMarkedCopyLocal:

        Target AssignTargetPaths:

        Target SplitResourcesByCulture:

        Target CreateManifestResourceNames:

        Target GenerateResources:

        Target GenerateSatelliteAssemblies:
        Skipping target "GenerateSatelliteAssemblies" because its outputs are up-to-date.

        Target CoreCompile:
            Tool /usr/bin/gmcs execution started with arguments: /noconfig /debug:full /debug+ /optimize- /out:obj/Debug/scallion.exe CLContext.cs CLDeviceInfo.cs ObjectDumper.cs Options.cs Program.cs Properties/AssemblyInfo.cs DataConvert.cs RSAWrapper.cs SHA1.cs TorBase32.cs CLRuntime.cs Profiler.cs /target:exe /unsafe+ /define:DEBUG;TRACE /reference:/usr/lib/mono/2.0/System.dll /reference:/usr/lib/mono/2.0/System.Core.dll /reference:/usr/lib/mono/2.0/System.Xml.Linq.dll /reference:/usr/lib/mono/2.0/System.Data.DataSetExtensions.dll /reference:/usr/lib/mono/2.0/System.Data.dll /reference:/usr/lib/mono/2.0/System.Xml.dll /reference:/home/shayan/files/lachesis-scallion-5c031ae/openssl-net-0.5/ManagedOpenSsl/bin/Debug//openssl.dll /reference:/usr/lib/mono/2.0/mscorlib.dll /warn:4

CLContext.cs(4,7): error CS0246: The type or namespace name `OpenTK' could not be found. Are you missing a using directive or an assembly reference?
Task "Csc" execution -- FAILED
Done building target "CoreCompile" in project "/home/shayan/files/lachesis-scallion-5c031ae/scallion/scallion.csproj".-- FAILED

        Target _GetCompileOutputsForClean:

        Target _RecordCleanFile:

    Done building project "/home/shayan/files/lachesis-scallion-5c031ae/scallion/scallion.csproj".-- FAILED

Task "MSBuild" execution -- FAILED
Done building target "Build" in project "/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln".-- FAILED

Done building project "/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln".-- FAILED

Build FAILED.

Warnings:

/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln: warning : Don't know how to handle GlobalSection MonoDevelopProperties, Ignoring.

/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln (default targets) ->
(Build target) ->
/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj (default targets) ->
(CoreCompile target) ->

DisplayDevice.cs(79): warning CS1030:  #warning: `"Consolidate current resolution with bounds? Can they fall out of sync right now?"'
Platform/Windows/WinGLNative.cs(579): warning CS1030:  #warning: `"This seems to resize one of the 'large' icons, rather than using a small icon directly (multi-icon files). Investigate!"'
Platform/Windows/WinGLContext.cs(95): warning CS1030:  #warning: `"This is not entirely correct: Embedded is not a valid flag! We need to add a GetARBContextFlags(GraphicsContextFlags) method."'
Platform/Windows/WinMMJoystick.cs(118): warning CS1030:  #warning: `"Implement joystick name detection for WinMM."'
Platform/X11/X11GLContext.cs(123): warning CS1030:  #warning: `"This is not entirely correct: Embedded is not a valid flag! We need to add a GetARBContextFlags(GraphicsContextFlags) method."'

Errors:

/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln (default targets) ->
(Build target) ->
/home/shayan/files/lachesis-scallion-5c031ae/opentk/Source/OpenTK/OpenTK.csproj (default targets) ->
(CoreCompile target) ->

Input/KeyboardState.cs(45,26): error CS0106:  The modifier `unsafe' is not valid for this item
Input/MouseState.cs(45,26): error CS0106:  The modifier `unsafe' is not valid for this item

/home/shayan/files/lachesis-scallion-5c031ae/scallion.sln (default targets) ->
(Build target) ->
/home/shayan/files/lachesis-scallion-5c031ae/scallion/scallion.csproj (default targets) ->
(CoreCompile target) ->

CLContext.cs(4,7): error CS0246:  The type or namespace name `OpenTK' could not be found. Are you missing a using directive or an assembly reference?

 6 Warning(s)
 3 Error(s)

Time Elapsed 00:00:34.0084110

Character "1" in RegEx causes unhandled InvalidArgumentException

Hello,

I noticed a strange behaviour (maybe just strange to me).
As soon as the number 1 occures in the RegEx, the application terminates with the ArgumentException "The passed regex string is not valid!"

scallion1inregexbreaks

Example calls:

  1. scallion.exe "^veloc1ty" -> fails
  2. scallion.exe "^veloc2ty" -> works
  3. scallion.exe "^berl1n" -> fails
  4. scallion.exe "^b3rlin" -> works

Am I missing something?
My environment is Windows 8.1 64bit with .NET Framework suggested by Microsoft. I use the precompiled binaries from the README file.

Character classes on pattern throw an error

Windows 7 64 bit, prebuild, I get the following when using charcter classes (prefix, suffix and 'midfix' (....) patterns are fine):

scallion.exe xxxx[1234]
Cooking up some delicions scallions...

Unhandled Exception: System.ArgumentException: The passed regex string is not valid!
   at scallion.RegexPattern.SingleRegexPattern..ctor(String regex)
   at scallion.RegexPattern.<RegexPattern>m__2(String i)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at scallion.RegexPattern..ctor(String regex)
   at scallion.CLRuntime.Run(ProgramParameters parms)
   at scallion.Program.Main(String[] args)

libOpenCL.so not found

On Mint 13 (which is basically Ubuntu 12.04), I installed mono-xbuild mono-devel mono-gmcs and opencl-headers. Built fine, loads of warnings but no errors, running with no options gives the usage text, but running with the -l flag causes this:

  Unhandled Exception: System.DllNotFoundException: libOpenCL.so
  at (wrapper managed-to-native) OpenTK.Compute.CL10.CL/Core:GetPlatformIDs (uint,intptr*,uint*)
  at OpenTK.Compute.CL10.CL.GetPlatformIDs (UInt32 num_entries, System.IntPtr* platforms, System.UInt32* num_platforms) [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in <filename unknown>:0 
  at scallion.CLRuntime.GetDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.ListDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libOpenCL.so
  at (wrapper managed-to-native) OpenTK.Compute.CL10.CL/Core:GetPlatformIDs (uint,intptr*,uint*)
  at OpenTK.Compute.CL10.CL.GetPlatformIDs (UInt32 num_entries, System.IntPtr* platforms, System.UInt32* num_platforms) [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in <filename unknown>:0 
  at scallion.CLRuntime.GetDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.ListDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

I went and checked that libOpenCL.so and it found it in several places. I have an Optimus GPU (this silly thing that's got a GPU and a CPU and it switches between them as it feels it needs, except on linux where you have to do it yourself with third party software because NVIDIA says "fuck you"), so I ran it through the GPU with Bumblebee, then I got this:

Unhandled Exception: System.InvalidOperationException:  ErrorCode:'-1001'
  at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in <filename unknown>:0 
  at scallion.CLRuntime.GetDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.ListDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException:  ErrorCode:'-1001'
  at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in <filename unknown>:0 
  at scallion.CLRuntime.GetDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.ListDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 

Any suggestions?

Scallion for Windows

OS - Windows 7, framework 4.5

I downloaded scallion-v2.0 but it does not work.

Can you help me ?

Advice to build in OSX?

So i tried to compile with mono http://www.go-mono.com/mono-downloads/download.html.
I ran
xbuild scallion.sln
I got: https://dl.dropboxusercontent.com/u/39497/xbuild.scallion.log.zip (sorry too big for pastebin)

Then trying to run it:
mono scallion/bin/Debug/scallion.exe -l
I get
Unhandled Exception: System.InvalidOperationException: No kernels or only kernel prototypes found when build executable. at scallion.CLContext.CreateAndCompileProgram (System.String source) [0x00000] in <filename unknown>:0 at scallion.Program.getPreferredWorkGroupSize (IntPtr deviceId) [0x00000] in <filename unknown>:0 at scallion.Program.ListDevices () [0x00000] in <filename unknown>:0 at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: No kernels or only kernel prototypes found when build executable. at scallion.CLContext.CreateAndCompileProgram (System.String source) [0x00000] in <filename unknown>:0 at scallion.Program.getPreferredWorkGroupSize (IntPtr deviceId) [0x00000] in <filename unknown>:0 at scallion.Program.ListDevices () [0x00000] in <filename unknown>:0 at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 deweydb:scallion deweydb$ xbuild scallion.sln

--help command out of date

Running $scallion.exe --help gives incorrect information for -m and -s to save the outputs into a file. It causes a crash. Looking through the code, the proper way to save the outputs to a file is:
$ scallion.exe -o myfile.txt mystring

System.InvalidOperationException: ErrorCode:'-1001'

Debian Jessie/sid

$ sudo lspci | grep VGA
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] R700 [Radeon HD 4850 X2]

~/github.com/lachesis/scallion$ mono ./scallion/bin/Debug/scallion.exe -l

Unhandled Exception:
System.InvalidOperationException: ErrorCode:'-1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in :0
at scallion.CLRuntime.GetDevices () [0x00000] in :0
at scallion.Program.ListDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: ErrorCode:'-1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in :0
at scallion.CLRuntime.GetDevices () [0x00000] in :0
at scallion.Program.ListDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0

Unable to choose which GPU to use with Scallion

I have a decent ATI graphics card and one of the newer Intel chips (which have integrated graphics). When I run Scallion it runs off the CPU and I want it to run off the GPU. I'm not sure how to configure Scallion for this? I used the pre-built distribution...

Crashes when attempting to use a regex

scallion.exe -d 0 "^cat"

Results in a crash of:

System.ArgumentException was unhandled
Message=The passed regex string is not valid!
Source=scallion
StackTrace:
at scallion.RegexPattern.SingleRegexPattern..ctor(String regex)
at scallion.RegexPattern.m__2(String i)
at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() at System.Linq.Buffer1..ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
at scallion.RegexPattern..ctor(String regex)
at scallion.CLRuntime.Run(ProgramParameters parms)
at scallion.Program.Main(String[] args)
InnerException:

-o argument error

when i use the -o argument in my command, the job never stop after find an answer (but i don't use -c option) and try to find an other onion domain.

Isn't scallion dangerous when user generate 2-5 letters?

If you use scallion to generate tor key, this is a major security risk.
Other people can use the tool to generate a same key which you have.

UserA: scallion nsa
UserB: scallion nsa

This enables attackers to host un-official website using your .onion hostname,
and in the worse scenario, like 3-letter agent did, infect a visitor with a javascript virus.

It's a great thing to get a memorable .onion address, but keep in mind, this is seriously dangerous.

System.DllNotFoundException at start

When I start Scallion this is what I get

C:\Users\Administrator\Desktop\scallion-v2.0>scallion.exe Test

Unhandled Exception: System.TypeInitializationException: The type initializer fo
r 'OpenSSL.Core.Native' threw an exception. ---> System.DllNotFoundException: Un
able to load DLL 'libeay32': The specified module could not be found. (Exception
 from HRESULT: 0x8007007E)
   at OpenSSL.Core.Native.ERR_load_crypto_strings()
   at OpenSSL.Core.Native..cctor() in C:\Users\FreeTop\projects\scallion\openssl
-net-0.5\ManagedOpenSsl\Core\Native.cs:line 172
   --- End of inner exception stack trace ---
   at OpenSSL.Core.Native.InitializeThreads()
   at OpenSSL.Core.ThreadInitialization.InitializeThreads() in C:\Users\FreeTop\
projects\scallion\openssl-net-0.5\ManagedOpenSsl\Core\Native.cs:line 103
   at scallion.Program.Main(String[] args) in C:\Users\FreeTop\projects\scallion
\scallion\Program.cs:line 306

Short info: trying this on a amazon EC2 G.large Instance with windows server 2012 (because on ubuntu bumblebee didn'T work). I Installed MS c++ 2008 Redistributable and OpenSSL from this page http://slproweb.com/products/Win32OpenSSL.html

Inaccurate Device Listing, Hash Rate and Time Prediction

Program runs as expected, had success at finding 4 character prefix. However it takes much longer than expected. No success at finding 5 character address after 2+ hours on a HD6850 running at 590MH/s. Windows 8.

Update

Inaccurate Device Listing, Hash Rate and Time Prediction

System: Windows 8, Intel E7400 @ 2.8GHz, HD6858 ASUS.

PS C:\Users\-\scallion-v1.0> .\scallion.exe -l 

Result:

Id:0 Name:Barts
    PreferredGroupSizeMultiple:64 ComputeUnits:12 ClockFrequency:790
    MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:536870912

Id:1 Name:Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
  PreferredGroupSizeMultiple:1 ComputeUnits:2 ClockFrequency:2793
  MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:1073741824

From This point, I assume device 0 is the GPU and 1 is my CPU.
If I run:

PS C:\Users\-\scallion-v1.0> .\scallion.exe -d 0 4444

Result:

Cooking up some delicions scallions...
Putting 1 patterns into 1 buckets.
Using kernel optimized from file kernel.cl (Optimized4_9)
Using work group size 64
Compiling kernel... done.
............................  Runtime:00:05:14  Predicted:00:00:00
No delicions scallions for you!!
Stopping the GPU and shutting down...
init: 660ms / 1 (660ms, 1.52/s)
generate key: 3665ms / 2728 (1.34ms, 744.34/s)
cpu precompute: 13ms / 44 (0.3ms, 3384.62/s)
total without init: 314883ms / 1 (314883ms, 0/s)
set buffers: 33ms / 2419 (0.01ms, 73303.03/s)
write buffers: 76ms / 2419 (0.03ms, 31828.95/s)
read results: 68965ms / 2419 (28.51ms, 35.08/s)
check results: 245260ms / 2419 (101.39ms, 9.86/s)

128.89 million hashes per second

If I run

PS C:\Users\-\scallion-v1.0> .\scallion.exe -d 1 4444

Result:

Cooking up some delicions scallions...
Putting 1 patterns into 1 buckets.
Using kernel optimized from file kernel.cl (Optimized4_9)
Using work group size 1
Compiling kernel... done.
LoopIteration:1  HashCount:16.78MH  Speed:7.9MH/s  Runtime:00:00:02  Predicted:00:00:00     CPU checking hash: 4444no22cthjjjkn

Ding!! Delicions scallions for you!!

Exponent: 653966957
Address/Hash: 4444no22cthjjjkn.onion

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

init: 419ms / 1 (419ms, 2.39/s)
generate key: 1282ms / 310 (4.14ms, 241.81/s)
cpu precompute: 11ms / 5 (2.2ms, 454.55/s)
total without init: 2167ms / 1 (2167ms, 0.46/s)
set buffers: 0ms / 1 (0ms, 0/s)
write buffers: 0ms / 1 (0ms, 0/s)
read results: 2131ms / 1 (2131ms, 0.47/s)
check results: 22ms / 1 (22ms, 45.45/s)

When I run a seven digit prefix with -d 0, the hash speed boost up to 580MH/s. However, the program would run for hours with no result.

When running a seven digit prefix with -d 1, the program returns with a results with average of 14 minutes.

Arch Linux

On Arch Linux, Mono 4 is only mono available. I get this error.

WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319

Unhandled Exception:
System.InvalidOperationException:  ErrorCode:'-1001'
  at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in <filename unknown>:0 
  at scallion.CLRuntime.GetDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException:  ErrorCode:'-1001'
  at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in <filename unknown>:0 
  at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in <filename unknown>:0 
  at scallion.CLRuntime.GetDevices () [0x00000] in <filename unknown>:0 
  at scallion.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 

key 3072 not work

Impossible to try to find a onion domain with a key size "3072".
Only 1024, 2048, 4096.

In tor 2.4 you can set a 3072 key for your onion domain.
Can you correct it ?

Hit logging with -c flag?

Hi, I have found documentation lacking on the usage of the -c flag: does scallion log hits while running in this mode? If not, the hits would quickly be lost unless I was watching and stopped it immediately. If so, where is this log file stored?

Regex phrasing throws error

I think it's been mentioned before, but I can't find any specific documentation on it. Scallion throws an error when using ranges (i.e. scallion [a-d]) or repeating patterns (i.e. scallion [abcd]{3}). This makes it annoying to find patterned addresses. For instance, scallion [abcd]{3} needs to be written scallion [abcd][abcd][abcd] to be considered valid.

Either a note in the documentation explaining this or an update to the parser would be appreciated.

Only chars.

Thanks, it works :)

Questions:

[a-z]{16} does not seem to work.

Also, is running two instances on different devices (gpus) will work or will it do the same work twice?

How do I get scallion to work?

Hi I am having an issue with scallion. I installed libcurl4-openssl-dev but it did not help. When I try to use scallion, it gives me this error:

~/Downloads/scallion/scallion/bin/Debug$ mono scallion.exe ipad

Unhandled Exception:
System.DllNotFoundException: libOpenCL.so
at (wrapper managed-to-native) OpenTK.Compute.CL10.CL/Core:GetPlatformIDs (uint,intptr,uint)
at OpenTK.Compute.CL10.CL.GetPlatformIDs (UInt32 num_entries, System.IntPtr* platforms, System.UInt32* num_platforms) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in :0
at scallion.CLRuntime.GetDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libOpenCL.so
at (wrapper managed-to-native) OpenTK.Compute.CL10.CL/Core:GetPlatformIDs (uint,intptr,uint)
at OpenTK.Compute.CL10.CL.GetPlatformIDs (UInt32 num_entries, System.IntPtr* platforms, System.UInt32* num_platforms) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in :0
at scallion.CLRuntime.GetDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0

Does anyone know how to fix this?

Unhandled exception when listing devices

Hi,

I get this error when listing devices:

$ optirun mono src/scallion-build/scallion/bin/Debug/scallion.exe -l

Unhandled Exception:
System.InvalidOperationException: ErrorCode:'-1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in :0
at scallion.CLRuntime.GetDevices () [0x00000] in :0
at scallion.Program.ListDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: ErrorCode:'-1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds () [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds () [0x00000] in :0
at scallion.CLRuntime.GetDevices () [0x00000] in :0
at scallion.Program.ListDevices () [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0

I'm using version 2.0. I get the same error with or without optirun. I'm running Arch Linux. glxspheres32 and 64 both work fine.

Segfault on OS X 10.11 El Capitan + GeForce GT 750M

Hi, I can't get scallion to work with the discrete GPU on my macbook, I'm currently running the GM candidate for OS X 10.11 and the preview version of mono. What should i know to further diagnose this bug? I don't know if it's relevant, but it appears to work with the non-optimized kernel, but it fails to get any result.

$ mono --version
Mono JIT compiler version 4.2.0 ((detached/2751182 Tue Jul  7 12:02:45 EDT 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug
    LLVM:          yes(3.6.0svn-mono-(detached/a173357)
    GC:            sgen
~/scallion$ mono scallion/bin/Debug/scallion.exe -l
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
Id:0 Name:Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz
    PreferredGroupSizeMultiple:1 ComputeUnits:8 ClockFrequency:2300
    MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:1073741823

Id:1 Name:Iris Pro
    PreferredGroupSizeMultiple:32 ComputeUnits:40 ClockFrequency:1200
    MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:402653184

Id:2 Name:GeForce GT 750M
    PreferredGroupSizeMultiple:32 ComputeUnits:2 ClockFrequency:925
    MaxConstantBufferSize:65536 MaxConstantArgs:9 MaxMemAllocSize:536870912
~/scallion$ mono scallion/bin/Debug/scallion.exe -d 2 test
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
Cooking up some delicions scallions...
Using kernel optimized from file kernel.cl (Optimized4)
Using work group size 32
Compiling kernel... done.
Testing SHA1 hash...
CPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
GPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
Looks good!

Native stacktrace:

    0   mono                                0x000c6e06 mono_handle_native_sigsegv + 342
    1   mono                                0x000144e6 mono_sigsegv_signal_handler + 214
    2   libsystem_platform.dylib            0x9c85a79b _sigtramp + 43
    3   ???                                 0xffffffff 0x0 + 4294967295
    4   libclh.dylib                        0x9b43681d clhLaunchGrid + 109
    5   GeForceGLDriver                     0x4834befc gldCopyTextureDataToBufferWithQueue + 13124
    6   GeForceGLDriver                     0x4834c1d6 gldExecuteKernel + 335
    7   OpenCL                              0x9dc8b1e1 OpenCL + 12769
    8   OpenCL                              0x9dca85bf clSetEventCallback + 5674
    9   OpenCL                              0x9dcabf6e clFinish + 802
    10  libdispatch.dylib                   0x9d112645 _dispatch_queue_drain + 726
    11  libdispatch.dylib                   0x9d11921f _dispatch_queue_invoke + 509
    12  libdispatch.dylib                   0x9d115ad5 _dispatch_queue_override_invoke_owning + 32
    13  libdispatch.dylib                   0x9d1117e8 _dispatch_root_queue_drain + 1771
    14  libdispatch.dylib                   0x9d1110b7 _dispatch_worker_thread3 + 97
    15  libsystem_pthread.dylib             0x9b030270 _pthread_wqthread + 1050
    16  libsystem_pthread.dylib             0x9b02df82 start_wqthread + 34

Debug info from gdb:


=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Abort trap: 6

Default Key Size

The current default key size seems to be 1024 bits, which is widely considered to be insecure. Is there a reason to not increase the default to 2048 or even 4096?

Given the goals of hidden services, I would think it would make sense for the default configuration to be as secure as possible.

Exception with Win7 32 bit and Downloaded OpenCL.DLL

Hi,

Thanks for this Scallopn.

I've downloaded binary zip and i downloaded the OpenCL.dll for win 32.

When i tried command scallion.exe -l i got following error.

Unhandled Exception: System.BadImageFormatException: An attempt was made to load
a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
at OpenTK.Compute.CL10.CL.Core.GetPlatformIDs(UInt32 num_entries, IntPtr* pla
tforms, UInt32* num_platforms)

Can you please guide me?

Thanks,
Ankur

Unhandled Exception: System.InvalidOperationException: Error calling GetKernelWorkGroupInfo: InvalidValue

Unhandled Exception: System.InvalidOperationException: Error calling GetKernelWorkGroupInfo: InvalidValue
at scallion.CLKernel.get_KernelPreferredWorkGroupSizeMultiple() in c:\Users\R
oginald Kaboom\Sources\scallion\scallion\CLContext.cs:line 211
at scallion.Program.getPreferredWorkGroupSize(IntPtr deviceId) in c:\Users\Ro
ginald Kaboom\Sources\scallion\scallion\Program.cs:line 93
at scallion.Program.Main(String[] args) in c:\Users\Roginald Kaboom\Sources\s
callion\scallion\Program.cs:line 181

Any ideas? Gave up trying to build for linux because of mono/openTK issues, figured I'd have more luck on Windows 7.. no dice. Any ideas?

Scallion hangs after Looks good

I have set up an ubuntu machine with all requirements. I built scallion from source and I downloaded the binary. When testing the setup however, it hangs after Looks good. Adding the -n also didn't work. It doesn't respond to anything, even Ctrl^C doesn't work.

ubuntu@ubuntu:~/scallion/scallion/bin/Debug$ mono scallion.exe -n test
Cooking up some delicions scallions...
Using kernel normal from file kernel.cl (Normal)
Using work group size 32
Compiling kernel... done.
Testing SHA1 hash...
CPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
GPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
Looks good!

My apologies if this is a known issue. I have tried googling for a solution.

The passed regex string is not valid!

I use the binary linked in the documentation here on GitHub.

I run the command "scallion.exe test123". The error occures if I add any number. The command "scallion.exe test" works. I use Windows 8.1 x64.

Error

Cooking up some delicions scallions...

Unbehandelte Ausnahme: System.ArgumentException: The passed regex string is not
valid!
   bei scallion.RegexPattern.SingleRegexPattern..ctor(String regex, Int32 output Length, String validCharacters) in C:\Users\FreeTop\projects\scallion\scallion\RegexPattern.cs:Zeile 76.
   bei scallion.RegexPattern.<>c__DisplayClass2.<.ctor>b__0(String i) in C:\Users\FreeTop\projects\scallion\scallion\RegexPattern.cs:Zeile 16.
   bei System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   bei System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   bei System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   bei scallion.RegexPattern..ctor(String regex, Int32 outputLength, String validCharacters) in C:\Users\FreeTop\projects\scallion\scallion\RegexPattern.cs:Zeile 15.
   bei scallion.OnionToolConfig.CreateRegexPattern(String pattern) in C:\Users\F
reeTop\projects\scallion\scallion\OnionToolConfig.cs:Zeile 27.
   bei scallion.ToolConfig..ctor(String pattern) in C:\Users\FreeTop\projects\sc
allion\scallion\ToolConfig.cs:Zeile 30.
   bei scallion.OnionToolConfig..ctor(String pattern) in C:\Users\FreeTop\projec
ts\scallion\scallion\OnionToolConfig.cs:Zeile 10.
   bei scallion.CLRuntime.Run(ProgramParameters parms) in C:\Users\FreeTop\proje
cts\scallion\scallion\CLRuntime.cs:Zeile 252.
   bei scallion.Program.Main(String[] args) in C:\Users\FreeTop\projects\scallio
n\scallion\Program.cs:Zeile 433.

Stopping the GPU and shutting down...

OverflowException when using 16 characters

i got an OverflowException when i tried to enter 16 characters as prefix. i know it is very unlikely to find such a hash but i think the program should still handle it.

Stacktrace:
Unbehandelte Ausnahme: System.OverflowException: TimeSpan ist übergelaufen, da d
ie Zeitdauer zu lang ist.
bei System.TimeSpan.Interval(Double value, Int32 scale)
bei scallion.CLRuntime.Run(ProgramParameters parms)
bei scallion.Program.Main(String[] args)

Sorry its a german system but i think it should be clear where the error comes from.
I think the exception should be catched and the time should show something like : "forever"/"inifinit"/"good look" or something like that ;)

regards Tobi

Initial Crash when trying to generate over 12 character words

Using Windows Binary. Version 2.0

Command to replicate bug:

scallion.exe -c "thisis13charZ" -o test.txt
Unhandled Exception: System.OverflowException: TimeSpan overflowed because the d
uration is too long.
   at System.TimeSpan.Interval(Double value, Int32 scale)
   at System.TimeSpan.FromSeconds(Double value)
   at scallion.OnionToolConfig.PredictRuntime(Int64 hashRate) in C:\Users\FreeTo
p\projects\scallion\scallion\OnionToolConfig.cs:line 17
   at scallion.CLRuntime.Run(ProgramParameters parms) in C:\Users\FreeTop\projec
ts\scallion\scallion\CLRuntime.cs:line 441
   at scallion.Program.Main(String[] args) in C:\Users\FreeTop\projects\scallion
\scallion\Program.cs:line 433

Stopping the GPU and shutting down...

libcrypto.so missing crash

I have OpenCL, OpenSSL and ATI graphics drivers installed. I extracted the zip to my desktop, opened the directory in terminal, ran xbuild scallion.sln with no error, then ran

sudo mono scallion/bin/Debug/scallion.exe -d 0 prefix

and got

Cooking up some delicions scallions...
Putting 1 patterns into 1 buckets.
Using kernel optimized from file kernel.cl (Optimized4_9)
Using work group size 64
Compiling kernel... done.

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for OpenSSL.Core.Native ---> System.DllNotFoundException: libcrypto.so
at (wrapper managed-to-native) OpenSSL.Core.Native:ERR_load_crypto_strings ()
at OpenSSL.Core.Native..cctor () [0x00000] in :0
--- End of inner exception stack trace ---
at OpenSSL.Crypto.RSA..ctor () [0x00000] in :0
at scallion.RSAWrapper..ctor () [0x00000] in :0
at scallion.CLRuntime+KernelInput..ctor (Int32 num_exps) [0x00000] in :0
at scallion.CLRuntime.CreateInput () [0x00000] in :0
at System.Threading.Thread.StartInternal () [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for OpenSSL.Core.Native ---> System.DllNotFoundException: libcrypto.so
at (wrapper managed-to-native) OpenSSL.Core.Native:ERR_load_crypto_strings ()
at OpenSSL.Core.Native..cctor () [0x00000] in :0
--- End of inner exception stack trace ---
at OpenSSL.Crypto.RSA..ctor () [0x00000] in :0
at scallion.RSAWrapper..ctor () [0x00000] in :0
at scallion.CLRuntime+KernelInput..ctor (Int32 num_exps) [0x00000] in :0
at scallion.CLRuntime.CreateInput () [0x00000] in :0
at System.Threading.Thread.StartInternal () [0x00000] in :0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.