Skip to content

Instantly share code, notes, and snippets.

一、生成用于签发client和server证书的ca根证书。
mkdir -p ca
#生成CA私钥,1024位RSA私钥,这里简单起见,没有对私钥进行加密。
openssl genrsa -out ca/ca.key 1024
#生成ca的证书请求文件
openssl req -new -out ca/ca.csr -key ca/ca.key
#用CA私钥进行自签名,生成ca的证书文件
#include <stdio.h>
#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <arpa/inet.h>
#include <openssl/ssl.h>
#include <event2/event.h>
#include <event2/util.h>
@longbuilder
longbuilder / foj_1016.cpp
Last active August 29, 2015 13:57
FOJ Accepted Source
#include <stdio.h>
#include <math.h>
int main()
{
double x,y,a,b;
double m,n;
freopen("data.txt", "r", stdin);
while(scanf("%lf %lf %lf %lf", &a, &b, &x, &y) !=EOF)
{
@longbuilder
longbuilder / mac_hid_access.cpp
Created April 19, 2014 01:07
mac hid device access
#define MAX_BUFFER 1024 ///< read buf size
unsigned char g_buf[MAX_BUFFER+1]; /// read buf 缓冲区
int g_bufLen; /// 缓冲区内数据长度
static int DATASIZE = 64; /// hid读写数据长度,Report Length
IOHIDDeviceRef hidDev; /// hid设备
pthread_t pthreadID; ///input read thread
static pthread_mutex_t g_mutex; /// 读写锁
static pthread_cond_t g_cond; /// 读写信号量
@longbuilder
longbuilder / opencv-image-segment.cpp
Created April 19, 2014 01:10
opencv image segment
//转换为灰度图
IplImage* pGrayImage = cvLoadImage( "image0.bmp", 0);
//利用Canny算子进行边缘检测
IplImage * pCannyImg=cvCreateImage(cvGetSize(pGrayImage),pGrayImage->depth,1);
cvCanny(pGrayImage,pCannyImg,50,150,3);
//膨胀,使边缘轮廓闭合
IplImage * pDilateImg=cvCreateImage(cvGetSize(pGrayImage),pGrayImage->depth,1);
IplConvKernel *rect_2;
@longbuilder
longbuilder / aes_ecb.cpp
Last active March 29, 2021 08:34
aes ecb encrypt and decrypt
#include <stdio.h>
#include <openssl/aes.h>
#define AES_KEY_LENGTH 16 // aes-128
std::string String2Hex(const unsigned char *src, size_t len)
{
std::string dest = "";
for (size_t i = 0; i < len; ++i)
{
@longbuilder
longbuilder / golang_struct_packed.go
Last active October 14, 2019 18:50
golang struct packed to network buffer
// struct filed only support uint* and string
// for string, there should be a value to represent the length of string
// packed
func WriteStructToBuffer(buffer *bytes.Buffer, data interface{}) error {
v := reflect.Indirect(reflect.ValueOf(data))
if v.Kind() != reflect.Struct {
return errors.New("invaild type Not a struct")
}
@longbuilder
longbuilder / boost_json.cpp
Last active August 29, 2015 14:05
boost demos
#include <sstream>
#include <string>
#include <boost/property_tree/json_parser.hpp>
int parseJson(const std::string &s)
{
using boost::property_tree::ptree;
ptree pt;
std::stringstream ss(s);
@longbuilder
longbuilder / bitmap O(1)
Last active August 29, 2015 14:08
bitset
#ifndef BIT_MAP_H_
#define BIT_MAP_H_
#include <stdlib.h>
template <typename RANK = int>
class BitMap
{
public:
BitMap(RANK n) :
capacity_(n),
@longbuilder
longbuilder / binary_search.cpp
Created November 4, 2014 01:50
binary_search
// 返回最后一个不大于 target 的位置
template <typename T>
int binary_search(T *A, int low, int high, T target)
{
while (low < high) {
int mid = (low + high) / 2;
target < A[mid] ? (high = mid) : (low = mid + 1);
}