博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
添加OpenSSL库支持for WPA on RTEMS-libbsd
阅读量:6891 次
发布时间:2019-06-27

本文共 7541 字,大约阅读时间需要 25 分钟。

WPA加密WiFi需要OpenSSL库的支持,因此我们需要从FreeBSD中import该库。RTEMS git 的master branch已经merge该部分的本人贡献的代码。可前往自行下载。

1. Add openssl lib files in libbsd.py

+# /crypto/openssl +# +def crypto_openssl(mm): +    mod = builder.Module('crypto_openssl') +    mod.addUserSpaceHeaderFiles( +        [ +            'crypto/openssl/engines/e_cswift_err.h', +            'crypto/openssl/engines/e_aep_err.h', +            'crypto/openssl/engines/e_gmp_err.h', +            'crypto/openssl/engines/ccgost/gost2001_keyx.h', +            'crypto/openssl/engines/ccgost/e_gost_err.h', +            'crypto/openssl/engines/ccgost/gost_params.h', +            'crypto/openssl/engines/ccgost/gost_lcl.h', +            'crypto/openssl/engines/ccgost/gost89.h',......
由于OpenSSL库的源文件数量很大,就不一一列举了。

2.New rule for uncompiled file

there are some files which shouldn't be compiled. so for these files we need use a new rule.

+    mod.addFile(mm.generator['file']('crypto/openssl/crypto/LPdir_unix.c', +                                     mm.generator['freebsd-path'](), +                                     mm.generator['some-name-for-FromFreeBSDToRTEMSUserSpaceSourceConverter'](), +                                     mm.generator['some-name-for-FromRTEMSToFreeBSDSourceConverter'](), +                                     mm.generator['some-name-for-BuildSystemFragmentComposer']())) +    mod.addFile(mm.generator['file']('crypto/openssl/crypto/ec/ecp_nistz256_table.c', +                                     mm.generator['freebsd-path'](), +                                     mm.generator['some-name-for-FromFreeBSDToRTEMSUserSpaceSourceConverter'](), +                                     mm.generator['some-name-for-FromRTEMSToFreeBSDSourceConverter'](), +                                     mm.generator['some-name-for-BuildSystemFragmentComposer']()))

3.Add the new rule in waf_generator.py

+        self.generator['some-name-for-FromFreeBSDToRTEMSUserSpaceSourceConverter'] = builder.FromFreeBSDToRTEMSUserSpaceSourceConverter +        self.generator['some-name-for-FromRTEMSToFreeBSDSourceConverter'] = builder.FromRTEMSToFreeBSDSourceConverter +        self.generator['some-name-for-BuildSystemFragmentComposer'] = builder.BuildSystemFragmentComposer

4.Add these files installed into a directory with a different name then it's source directory in builder.py.

+            ('freebsd/crypto/openssl', '*.h', 'openssl'), +            ('freebsd/crypto/openssl/crypto', '*.h', 'openssl'), +            ('freebsd/crypto/openssl/crypto', '(opensslconf|opensslv|crypto).h', 'openssl'), +            ('freebsd/crypto/openssl/crypto/aes', 'aes.h', 'openssl'), +            ('freebsd/crypto/openssl/crypto/err', 'err.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/bio', '*.h', 'openssl'), +            ('freebsd/crypto/openssl/crypto/dsa', '*.h', 'openssl'), +            ('freebsd/crypto/openssl/crypto/lhash', 'lhash.h', 'openssl'), +            ('freebsd/crypto/openssl/crypto/asn1', '(asn1|asn1t).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/x509', 'x509.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/bn', 'bn.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/camellia', 'camellia.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/cast', 'cast.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/objects', '(objects|obj_mac).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/conf', '(conf|conf_api).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/des', '(des|des_old).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ecdh', 'ecdh.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ecdsa', 'ecdsa.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/idea', 'idea.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/mdc2', 'mdc2.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/md4', 'md4.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/md5', 'md5.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/rc2', 'rc2.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/rc4', 'rc4.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ripemd', 'ripemd.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/seed', 'seed.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/sha', 'sha.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ui', '(ui_compat|ui).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/whrlpool', 'whrlpool.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/x509v3', 'x509v3.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/x509', 'x509_vfy.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/buffer', 'buffer.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/comp', 'comp.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/stack', '(stack|safestack).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/asn1', 'asn1_mac.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/pem', '(pem|pem2).h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/rsa', 'rsa.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/evp', 'evp.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ec', 'ec.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/engine', 'engine.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/pkcs7', 'pkcs7.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/hmac', 'hmac.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/pqueue', 'pqueue.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ocsp', 'ocsp.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/rand', 'rand.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/srp', 'srp.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/dh', 'dh.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/dso', 'dso.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/krb5', 'krb5_asn.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/cms', 'cms.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/txt_db', 'txt_db.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/ts', 'ts.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/modes', 'modes.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/pkcs12', 'pkcs12.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/bf', 'blowfish.h',               'openssl'), +            ('freebsd/crypto/openssl/crypto/cmac', 'cmac.h',               'openssl'), +            ('freebsd/crypto/openssl/ssl', '(ssl|kssl|ssl2).h', 'openssl'), +            ('freebsd/crypto/openssl/ssl', '*.h', 'openssl'),

So after these modified point, we can import openssl files from FreeBSD and port it to RTEMS-libbsd.

转载于:https://www.cnblogs.com/sichenzhao/p/9320255.html

你可能感兴趣的文章
Keepalived+NFS+SHELL脚本实现NFS-HA高可用
查看>>
漫游用户配置文件
查看>>
“带宽”的两种含义
查看>>
Linux Shell常用技巧(六) sort uniq tar split
查看>>
我的友情链接
查看>>
SSIS Preview Excel数据为NULL
查看>>
Docker 获取容器镜像报错
查看>>
20145328 《Java程序设计》第9周学习总结
查看>>
MySQL-5.5.23 在Windows上的安装及使用( MySQL简明教程)
查看>>
eclipse中没有server选项无法配置Tomcat
查看>>
awakeFromNib和viewDidLoad的区别(转)
查看>>
yum提示Another app is currently holding the yum lock
查看>>
Jackson
查看>>
我的友情链接
查看>>
equals方法中变量在前和在后的区别
查看>>
setToolTipText自动换行 .
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
深入JAVA序列化反序列化
查看>>
Apache Spark源码走读之22 -- 浅谈mllib中线性回归的算法实现
查看>>