顯示具有 tcl 標籤的文章。 顯示所有文章
顯示具有 tcl 標籤的文章。 顯示所有文章

Free mib browser

Tcl-MIBBrowser is a free and open-source MIB Browser for Linux and Windows platforms.

Tcl-MIBBrowser is a front end for Net-SNMP, the UI is based on TCL / TK 8.6. It should be ported to other platforms. Currently I only build, and test on Linux and Windows.

The software use the following tcl's packages
net-snmp-tcl
sha1 (one of tcllib project)
inifile (one of tcllib project)
bigint (Split from bignum library)
treectrl

Features

  • SNMP v1, v2c ,v3
  • SNMPv3 Diffie-Hellman
  • Load MIB files
  • snmp dump/load OCTET data
  • Bookmark OID

Download






Tcl-MIBBrowser screenshots

source code: https://github.com/jianiau/Tcl-MIBBrowser


Screenshots

TCL MIB Browser

Tcl-MIBBrowser 是免費 (free) 開源 (opensource) 的軟體, source code 放在 GitHub
核心的 model 使用Net-SNMP, 將SNMP apps (snmpget, snmpset, snmpwalk...)編譯成TCL的模組
net-snmp-tcl 再搭配 TCL/TK 就可以拼湊出想要的功能與界面,也能快速的跨平台開發
目前主要是在Ubuntu x86_64 上開發與測試,以下附上一些目前進度與功能介紹

這隻程式有用到 8.6 版的指令,Ubuntu 14.04 預設就裝好了
使用 Windows 的可以用 Tclkit 執行,或是直接下載打包好的執行檔玩玩看
執行檔下載 : 壓縮檔包含主程式和 netsnmp mib

初次開啟時要先設定MIB資料夾,點選"MIB Setting"按鈕

ASN.1 DER 格式編碼與解碼


在工作時常會遇到的幾個資料,certificate(X.509 DER),signed image(PKCS#7 DER), snmp packet
這些資料都用了 ASN.1 的 DER 格式。雖然有很多工具能把這些值解出來,但還是希望能靠著hexdump和小算盤就解出資料,有時也想要對資料做一些處理
那就只好硬吞spec,看它到底是如何編碼的。不過因為英文不好,spec看不太懂,有時候反而覺得程式碼看起來還比較輕切,於是一邊看spec,搭配tcl的ASN package來了解編碼方式
這邊紀錄一些常看到的資料類型,了解怎麼編碼解碼之後,就可以編輯certificate,SNMP 封包,當然直接使用現成的程式碼移植擴展到TCL是最方便的,但我不是每次都能順利地把
程式碼轉成TCL用的格式,在還沒編譯出TCL的dll時,就是純用TCL硬上

參考資料
ITU-T X.680
ITU-T X.690
http://www.obj-sys.com/asn1tutorial/asn1only.html


RSA非對稱加密演算法 (四) 利用中國剩餘定理加速



使用RSA演算法在解密的計算時會需要較多時間,這時可以利用中國剩餘定理來加速
假設現在有一組金鑰,是由質數\(p,q\)生成,其中公鑰\((e,n)\),私鑰\((d,n)\),\(n=pq\)
在生成RSA金鑰的步驟中,最後一步是把\(p,q\)銷毀,但是在擁有私鑰的這一方若保留這兩個數則可以加快運算時間

假設收到一筆加密資料\(C\)

原本要計算的是
\(m= C^d \mod n =C^d \mod (pq)\)

把它轉換成中國剩餘定理的題型
\(\left\{ \begin{matrix} x \equiv m_1 \pmod{p} \\ x \equiv m_2 \pmod{q} \end{matrix} \right.\)
\(m_1=C^d \mod p \\ m_2=C^d \mod q\)
\(x\)的最小正整數解就是\(C^d\)

將程式的輸出傳給TCL

在打包一些現有的程式時(例如 net-snmp, openssl),裡面包含各式各樣的apps。
輸出結果的code散佈在很多地方,而且通常是直接出到stdout,想在tcl得到一樣格式
的結果就要慢慢改,有些複雜一點的輸出格式呼叫一堆function,還有static function,
改起來很麻煩。
以下紀錄一下目前用到的幾種導出結果的方法

snmpv3 Diffie-Hellman

在做cable modem測試時,需要用到snmpv3 Diffie-Hellman,為了能夠自動化,希望可以用net-snmp 來達成,可惜一直找不到使用Diffie-Hellman的方法,所以只好切開來做了

1. 用net-snmp取得public key
2 .利用程式(tcl)算出snmpv3的authentication key 和privacy key
3. 利用算出來的key使用snmpv3

以TCL實現SNMP

由於我很多程式需要用到SNMP的功能,而且我希望能打包成單一直行檔,最簡單的方式是使用netsnmp,將程式重編譯成TCL可以載入的DLL檔即可,不過這一步我始終做不出來,只好走別條路,直接用TCL編輯SNMP封包

SNMP封包包在UDP裡面,內容則是以ASN.1的編碼方式,所以只要使用udp和asn這兩個package就可以實現snmp

MTA-BASIC

因為美規mta config file太麻煩了,就做了一個懶人包
只是用到的機率很低
























1.填入 CMS FQDN
2.填入Realm Name (全大寫)
3.填入Organization Name (在 Service Provider Certificate裡),沒有就亂打,順便看是會  provisioning fail 還是程式會fail
4.設定snmp權限和community
5.選擇美歐規
6.BASIC Flow 就打勾,否則就取消
7.按 Generate存檔,hash值會更新,跑 Hybrid 或 Secure Flow 就複製起來貼給provisioning server

source code


DOCSIS config editor

2012/07/09

  1. 建立secure fw upgrade TLV 時,原本是選擇MFG CVC,改為選擇p7b檔,若檔案包含1張 CERT會建立TYPE32,若有2張CERT會建立TYPE32和33
  2. 新增Type10編輯視窗