Visual Studio auto comment PlugIn – AtomineerUtils

Dzisiaj poszukując łatwego sposobu na dokumentację swojego projektu znalazłem taki oto plugIn do Visual Studio. Plugin po instalacji i odrobinie konfiguracji potrafi z powietrza wygenerować zupełnie sensowny zalążek komentarza dokumentującego:
Było:

1
2
3
4
5
6
7
8
9
10
    class archive
    {
    public:
        void log(response resp ) ;
        void store( response resp ) ;
        int getNextSerialNumber() ;
        void init() ;
    private:
        int actualSerial ;
    } ;

Po ustawieniu karetki przed każdą deklaracją funkcji oraz na początku klasy i wywołaniu skrótu CTRL+SHIFT+D otrzymałem:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    /**
     * <summary>   
     * The <c>archive</c> Class is responsible for logging the service user activity and storing
     * issued tokens for future verification.
     * </summary>
     *
     * <remarks>    Root, 2009-08-30. </remarks>
    **/


    class archive
    {
    public:

        /**
         * <summary>    Logs. </summary>
         *
         * <remarks>    Root, 2009-08-30. </remarks>
         *
         * <param name="resp">  The resp. </param>
        **/


        void log(response resp ) ;

        /**
         * <summary>    Stores. </summary>
         *
         * <remarks>    Root, 2009-08-30. </remarks>
         *
         * <param name="resp">  The response to store. </param>
        **/


        void store( response resp ) ;

        /**
         * <summary>    Gets the next serial number. </summary>
         *
         * <remarks>    Root, 2009-08-30. </remarks>
         *
         * <returns>    The next serial number. </returns>
        **/


        int getNextSerialNumber() ;

        /**
         * <summary>    Initialises this object. </summary>
         *
         * <remarks>    Root, 2009-08-30. </remarks>
        **/


        void init() ;
    private:
        int actualSerial ;
    } ;

Tak, dokładnie – to narzędzie potrafi wywnioskować (SIC!!) do czego służą poszczególne funkcje.
Z pewnością to ułatwi i uprzyjemni żmudne godziny tworzenia dokumentacji.

Szablonowy certyfikat dla Pingwina : Microsoft Certificates Services

Usługi certyfikacyjne Microsoftu działają w oparciu o szablony certyfikatu, w których zawarte są informacje dotyczące przeznaczenia certyfikatu wydanego na jego podstawie, atrybutów zabezpieczeń związanych z możliwością wydawania i użytkowania certyfikatu i tym podobnych rzeczy powiązanych z użytkowaniem Centrum Certyfikacji w strukturach Active Directory.
Bardzo często w takim środowisku musi się pojawić system działający pod kontrolą linuxa. Ot, choćby VMware ESX, które są hostowane przez Red Hat’a. W takich systemach wszelkie operacje związane z certyfikatami wykonywane jest przez pakiet openssl. Potrafi on niezmiernie dużo zrobić z automatu, jednakże jego funkcjonalność ogranicza się do działań kryptograficznych, jako że nie jest to narzędzie przeznaczone do integracji z Active Directory. Na szczęście jednak Microsoft swoje rozwiązanie automatyzujące wydawanie certyfikatów zmieścił w ramach standardu, i przy niewielkich modyfikacjach pliku konfiguracyjnego można także w Żądaniu Certyfikatu (Certificate Request) generowanym przy pomocy tego narzędzia umieścić także pole odpowiedzialne za szablon przy pomocy którego CA utworzy certyfikat.
Aby takie rozszerzenie dodać, trzeba przede wszystkim poinformować openssl’a o tym, że taki mechanizm istnieje. Robi się to przez rejestrację w pliku konfiguracyjnym openssl’a oid’u wykorzystywanego przez Microsoft do oznaczenia szablonu certyfikatu. W tym celu należy umieścić w sekcji

1
[ new_oids ]

linię

1
CertificateTemplate = 1.3.6.1.4.1.311.20.2

oraz zarejestrować tę sekcję jako definiującą niestandardowe oidy za pomocą linii

1
oid_section     = new_oids

umieszczonej na początku pliku, gdzie definiuje się zmnienne i sekcje. (obszar ten jest zbiorem wpisów podobnych do przytoczonego) Następnie koniecznym jest zdefiniowanie zestawu szablonów możliwych do wykorzystania przez openssl’a przy tworzeniu żądań certyfikatów. Wykonuje się to przez przypisanie zarejestrowanemu wcześniej oid’owi odpowiedniej nazwy szablonu. Jest to realizowane przy pomocy definicji sekcji nazwanej zgodnie z nazwą szablonu o następującej strukturze:

1
2
[ Template Name ]
CertificateTemplate     = ASN1:PRINTABLESTRING:Template Name

Przytoczona sekcja definiuje szablon o nazwie “Template Name”. Liczba sekcji nie jest ograniczona, należy je dla zachowania przejrzystości pliku konfiguracyjnego umieszczać bezpośrednio po sekcji

1
[ req ]

która odpowiedzialna jest za opcje związane z żądaniami certyfikatu.

Ostatnim krokiem jest sama generacja klucza prywatnego oraz żądania certyfikatu poświadczającego klucz publiczny z nim skojarzony. Wykonuje się to poprzez wydanie komendy:

1
openssl genrsa -out RSAkey.pem -des3 1048

celem utworzenia klucza, oraz następnie

1
openssl req -outform DER -out RSAreq.req -new -key RSAkey.pem -reqexts "Template Name"

Jak widać, poza typowymi argumentami podawanymi do komendy req występuje parametr

1
-reqexts

który odpowiada za wybór odpowiedniego szablonu certyfikatu który zostanie wykorzystany przez CA do utworzenia Certyfikatu.

Następnie pozostaje wysłać Request do Urzędu Certyfikacji i przetworzyć odpowiedź. Niestety na razie nie znam metody na wykonanie tego prosto spod Linuxa, więc należy się uciec do narzędzi windows’owych (np. certreq.exe), ale prace trwają.
O efektach będę informował 🙂

Goood Mooooorning, Vietnam!

Rozpoczynając tym znanym cytatem z jeszcze bardziej znanego filmu, prezentuję Wam, Drodzy Czytelnicy od dawna planowanego, a dzisiaj zainstalowanego TechBloga.

Jako że jestem raczej człowiekiem technicznym, to w tym miejscu zamierzam umieszczać opisy i efekty moich codziennych zmagań z techniką, a także prezentować różne zagadnienia techniczne, warte moim zdaniem uwagi. Jednakowoż, fortuna kołem się toczy, a życie ma różne zakręty, więc i tutaj pojawią się tematy bardziej życiu poświęcone. Pewną ciekawostką może się stać fakt, iż będąc absolwentem liceum z klasy Matematyczno – Informatycznej param się także poezją. Zainteresowanych zapraszam do zapoznania się z Liryczną Galeryjką.
Ach, i jeszcze na progu działalności specjalne podziękowania należą się Paszczakowi, który zgodził się gościć ten blog na serwerze

1
pr0.pl  :)

Pozostaje mi jedynie wyrazić serdeczną nadzieję, że materiały tu prezentowane spotkają się z równie entuzjastycznym przyjęciem, jak audycje prowadzone przez szeregowego Cronauer’a…