How to add an encryption algorithm in the FreeBSD Kernel? - encryption

I am trying to add my own cipher to the FreeBSD kernel. I searched online but couldn't really find help. I am wondering which files should i modify to link my new cipher and where to put my source code. Thanks

Take a look at sys/opencrypto/, in particular sys/opencrypto/xform.c, to see how various algorithms are integrated with the rest of the kernel.

See crypto(9). Most of the algorithms are found in /usr/src/sys/crypto/. Some algorithms and the cryptograhic framework code are in /usr/src/sys/opencrypto/.

Related

Encryption using BouncyCastle's Elliptic Curve Crypto API in Java

I am looking for a sample code to Encrypt/decrypt a byte[] using 'ECKey' in bouncy-castle's java implimentation. Especially i need to know how to specify Algorithm, padding etc.
Thanks in Advance
For this time only, as the sample source still cannot be downloaded separately. This is just the code of the internal bouncy castle samples. Download the latest sources or look up the EC IES test here (just googled that).
In BouncyCastle API is IESEngine (Integrated Encryption Scheme) that uses a BasicAgreement and KDF objects the example you can find it in ECIESTest.java. It shows in detail the use of this class.

Net-SNMP used in UNIX

Does anyone know good tutorials online or books that will help with NET-SNMP.
Or can anybody recommend my a SNMP trap generator for Unix
Basically I want to send SNMP traps from UNIX to SCOM server but i can not use SCOM AGENT as it is heavy.
Net-SNMP includes a commandline tool "snmptrap" that you can use to send traps. Or you can use Perl to write script that does the trap sending.
The O'Reilly book "Essential SNMP" besides explaining SNMP in general, has many examples how to use SNMP from the command line or from Perl.
You can get tutorials from official NET-SNMP wiki - just search google.
Regarding your question, you can find one good article in this
snmptrap tutorial link
If you're using UNIX/Solaris as your dev platform, make sure you include the "/usr/sfw/bin" folder in your PATH as it's not searched by default.

Is it possible to write console applications in scheme?

Does anyone know of any semi-portable way to write console applications (e.g. basic animation) in scheme? I heard of an ncurses wrapper but I couldn't find anything.
You can't do any GUI in a portable way in Scheme -- because you only get very basic file IO.
Depends on your scheme of choice. Chicken Scheme, for instance, has good ties with C and has various Curses libraries. See their code examples:
ncurses
mojo, curses for the lazy :)
Have you checked out Guile? I've never used it myself except just to play around, but it is pretty cool, and even has a little GUI support. Not sure about portability, except it should port just fine between different Unix systems, but the same can be said about ncurses.
Don't give up hope! If you're dedicated to developing in Scheme, you can.

SSIS PGP encryption

I have a SSIS package that writes the output to Flat file.
Now I need to PGP encrypt the output file and further decrypt in other packages. I am curious if anyone knows of how to do this, or better yet a website with helpful hints on how to do it.
Thanks
Assuming you want to do the en/de-cryption within SSIS, the simplest method will probably to explore the command line version of whichever encryption software you are using, and execute it using an Execute Process task.
If you haven't yet selected encryption software, obvious choices include PGP (commercial) and GnuPG (open source).
The other option would be to write .Net code to carry out en/de-cryption in a Script Task - this would require a .dll from PGP or GnuPG. Various generic .Net examples (not specific to SSIS) are available - like this one - but I can't comment on their completeness or quality.
This SQLServerCentral thread may have some useful pointers.
For stable, well-supported and updated PGP-compatible SSIS task check our BizCrypto product.
Check the third-party commercial CozyRoc SSIS+ library. It includes OpenPGP Task and many other useful extensions.

Why is Peer-to-Peer programming a hard topic to obtain good research for?

After reading a bit more about how Gnutella and other P2P networks function, I wanted to start my own peer-to-peer system. I went in thinking that I would find plenty of tutorials and language-agnostic guidelines which could be applied, however I was met with a vague simplistic overview.
I could only find very small, precise P2P code which didn't do much more than use client/server architecture on all users, which wasn't really what I was looking for. I wanted something like Gnutella, but there doesn't seem to be any articles out in the open for joining the network.
RFC 4981, with its huge bibliography, could be a very good starting point.
I had to write a basic Gnutella client in C# using Web Services and I think the class notes on the P2P stuff are still available here and here.
You might have better success researching Bittorrent, I believe that the creator has written some papers, and it seems others are as well.
BitTyrant
Bittorent.org, see the developers section
I don't know what platform you are trying to use, but here is a decent article on the subject for .NET.
I've found the TheoryOrg Unofficial BitTorrent Specification to be the best online source for Bittorrent information. Also, the Monotorrent code is fairly simple and easy to understand. There's also a project called "GCT" which implements JGroups style P2P for LAN/Multicast environments, and its code is similarly easy to understand (if a bit buggy).
You can try to read Gnutella2 and try to implement messaging. For reading conceptual material you can read Distributed Systems by Andrew Tannenbaum.
You can have a look at JXTA. It's intention was to be a generic, platform agnostic p2p framework, in contrast to other p2p implementations which are usually for a very specific purpose (such as Gnutella).
Don't be fooled by it's Java appearance, there are binding available for C/C++/C#, but the core protocols are implemented in XML which should translate to any language.
You can also download a free book here.

Resources